การสร้างวิว
สร้างวิวครอบสตริง
การสร้างวิว เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ