0Pricing
C++ Academy · บทเรียน

การสร้างวิว

สร้างวิวครอบสตริง

การสร้างวิว เป็นบทเรียน C++ Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C++ Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C++ Academy มีบทเรียนทั้งหมด 4 บทเรียน

จากลิเทอรัลสตริง

มุมมองที่เรียบง่ายที่สุดมาจากลิเทอรัลสตริง โดยระบบจะคำนวณความยาวให้อัตโนมัติ

#include <iostream>
#include <string_view>
int main() {
    std::string_view sv = "automatic length";
    std::cout << sv.size() << "\n";
}

จาก std::string

std::string แปลงเป็นมุมมองโดยปริยายได้ ทำให้คุณดูเนื้อหาของมันได้โดยไม่ต้องคัดลอก

#include <iostream>
#include <string>
#include <string_view>
int main() {
    std::string s = "owned text";
    std::string_view sv = s;
    std::cout << sv << "\n";
}

จากตัวชี้และความยาว

คุณสามารถสร้างมุมมองจากตัวชี้อักขระและความยาวที่ระบุอย่างชัดเจนได้ ซึ่งมีประโยชน์สำหรับบัฟเฟอร์ที่ไม่ได้ลงท้ายด้วยค่า null

#include <iostream>
#include <string_view>
int main() {
    const char buf[] = {'H','e','l','l','o','!'};
    std::string_view sv(buf, 5);
    std::cout << sv << "\n"; // Hello
}

ส่วนต่อท้ายลิเทอรัล sv

ส่วนต่อท้าย sv จาก std::string_view_literals จะสร้างมุมมองโดยตรง และจัดการอักขระ null ที่แทรกอยู่ภายในได้อย่างถูกต้อง

#include <iostream>
#include <string_view>
using namespace std::string_view_literals;
int main() {
    auto sv = "ready"sv;
    std::cout << sv.size() << "\n";
}

การตัดด้วย substr

substr(pos, count) ส่งคืนมุมมองใหม่ในบัฟเฟอร์เดิม เป็นวิธีดูข้อความบางส่วนโดยไม่ต้องจัดสรรหน่วยความจำ

#include <iostream>
#include <string_view>
int main() {
    std::string_view sv = "2026-05-30";
    std::cout << sv.substr(0, 4) << "\n"; // 2026
}

remove_prefix

remove_prefix(n) ทำให้มุมมองสั้นลงจากด้านหน้าโดยเลื่อนตัวชี้เริ่มต้นไปข้างหน้า โดยไม่มีการคัดลอก

#include <iostream>
#include <string_view>
int main() {
    std::string_view sv = "   trimmed";
    sv.remove_prefix(3);
    std::cout << sv << "\n"; // trimmed
}

remove_suffix

remove_suffix(n) ทำให้มุมมองสั้นลงจากด้านหลังโดยลดความยาวลง

#include <iostream>
#include <string_view>
int main() {
    std::string_view sv = "data.csv";
    sv.remove_suffix(4);
    std::cout << sv << "\n"; // data
}

มุมมองว่าง

มุมมองที่สร้างด้วยคอนสตรักเตอร์เริ่มต้นจะว่างเปล่า โดย empty() จะรายงานค่า true และ size() จะมีค่าเป็นศูนย์

#include <iostream>
#include <string_view>
int main() {
    std::string_view sv;
    std::cout << sv.empty() << " " << sv.size() << "\n";
}

การคัดลอกมุมมองมีต้นทุนต่ำ

การกำหนดมุมมองหนึ่งให้กับอีกมุมมองหนึ่งจะคัดลอกเพียงตัวชี้และความยาวเท่านั้น ทั้งสองมุมมองยังคงอ้างถึงอักขระชุดเดียวกัน

#include <iostream>
#include <string_view>
int main() {
    std::string_view a = "shared";
    std::string_view b = a;
    b.remove_prefix(3);
    std::cout << a << " " << b << "\n"; // shared red
}

แปลงกลับเป็นสตริง

เมื่อต้องการเป็นเจ้าของข้อมูล ให้สร้าง std::string จากมุมมอง จุดนี้คือจุดที่เกิดการคัดลอกโดยตั้งใจ

#include <iostream>
#include <string>
#include <string_view>
int main() {
    std::string_view sv = "copy me";
    std::string owned{sv};
    std::cout << owned << "\n";
}

เลือกวิธีสร้าง

ใช้ลิเทอรัลและการแปลงโดยปริยายในกรณีทั่วไป ใช้รูปแบบตัวชี้+ความยาวสำหรับบัฟเฟอร์ดิบ และใช้ substr/remove_* เพื่อตัดแบ่งใหม่โดยไม่ต้องจัดสรรหน่วยความจำ

ตรวจสอบความเข้าใจ

ตรวจสอบความเข้าใจของคุณเกี่ยวกับการสร้างมุมมอง

สรุป

คุณได้เรียนรู้วิธีสร้างมุมมอง:

  • สร้างจากลิเทอรัล สตริง หรือตัวชี้+ความยาว
  • ส่วนต่อท้าย sv ใช้สร้างมุมมองโดยตรง
  • substr, remove_prefix, remove_suffix ใช้ตัดแบ่งใหม่ได้โดยไม่ต้องจัดสรรหน่วยความจำ
  • สร้าง std::string เมื่อต้องการเป็นเจ้าของข้อมูล

คำถามที่พบบ่อย

บทเรียน “การสร้างวิว” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การสร้างวิว” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C++ Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C++ Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การสร้างวิว”

สร้างวิวครอบสตริง คุณปฏิบัติ C++ Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C++ Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน C++ Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การสร้างวิว” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน C++ Academy นี้ได้ไหม

ได้ บทเรียน C++ Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เหตุผลที่ใช้ string_view
  2. การสร้างวิว
  3. ข้อควรระวังและอายุการใช้งาน
  4. อัลกอริทึมสตริง
← กลับไปที่ C++ Academy