การขยายและลดขนาด
แทรก ลบ และปรับขนาด
การขยายและลดขนาด เป็นบทเรียน Learn Rust Coding ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn Rust Coding และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn Rust Coding มีบทเรียนทั้งหมด 4 บทเรียน
Vector เปลี่ยนขนาดได้
คุณสมบัติสำคัญของเวกเตอร์คือสามารถเปลี่ยนขนาดขณะโปรแกรมทำงานได้ คุณสามารถเพิ่มสมาชิกเมื่อมีข้อมูลมากขึ้น และลบสมาชิกเมื่อไม่ต้องการใช้แล้ว
การเปลี่ยนขนาดทุกครั้งจำเป็นต้องประกาศเวกเตอร์เป็น mut
การขยายด้วย push
เมธอด push เพิ่มสมาชิกหนึ่งตัวที่ท้ายเวกเตอร์ ทำให้เวกเตอร์ยาวขึ้นหนึ่งรายการ นี่เป็นวิธีขยายเวกเตอร์ที่ใช้บ่อยที่สุด
ด้านล่าง เวกเตอร์จะขยายจากความยาว 0 เป็นความยาว 3
fn main() {
let mut v = Vec::new();
v.push("a");
v.push("b");
v.push("c");
println!("len = {}", v.len());
}การนำออกด้วย pop
เมธอด pop จะนำสมาชิกตัวสุดท้ายออกและคืนค่าสมาชิกนั้นในรูปแบบ Option โดยปกติคุณจะได้ Some(value) แต่ถ้าเวกเตอร์ว่างอยู่แล้วจะได้ None
การทำเช่นนี้จะลดความยาวของเวกเตอร์ลงหนึ่ง
fn main() {
let mut v = vec![1, 2, 3];
let last = v.pop();
println!("popped {:?}", last);
println!("now {:?}", v);
}การแทรกตรงกลาง
เมธอด insert วางค่าไว้ที่ดัชนีที่กำหนด แล้วเลื่อนสมาชิกถัดไปไปทางขวา ดัชนีต้องอยู่ตั้งแต่ 0 จนถึงความยาวปัจจุบัน
ในที่นี้เราแทรก 99 ไว้ที่ตำแหน่ง 1
fn main() {
let mut v = vec![10, 20, 30];
v.insert(1, 99);
println!("{:?}", v);
}การลบตามดัชนี
เมธอด remove ลบสมาชิกที่ดัชนีหนึ่ง ๆ คืนค่าสมาชิกนั้น และเลื่อนสมาชิกถัดไปไปทางซ้ายเพื่อเติมช่องว่าง
โปรดระวัง: การลบดัชนีที่ไม่มีอยู่จะทำให้โปรแกรมตื่นตระหนก
fn main() {
let mut v = vec![10, 20, 30];
let gone = v.remove(0);
println!("removed {}", gone);
println!("{:?}", v);
}การลบอย่างรวดเร็วด้วย swap_remove
เมื่อไม่จำเป็นต้องรักษาลำดับ swap_remove จะทำงานได้เร็วกว่า โดยย้ายสมาชิกตัวสุดท้ายมาแทนที่ตำแหน่งที่ลบ แทนการเลื่อนสมาชิกทั้งหมด
วิธีนี้จะเปลี่ยนลำดับสมาชิก แต่หลีกเลี่ยงค่าใช้จ่ายจากการเลื่อน
fn main() {
let mut v = vec![1, 2, 3, 4];
let x = v.swap_remove(0);
println!("took {}", x);
println!("{:?}", v);
}การลบทั้งหมด
เมธอด clear ลบสมาชิกทั้งหมดในครั้งเดียว เหลือเวกเตอร์ว่างที่มีความยาว 0 เวกเตอร์จะยังคงความจุที่จัดสรรไว้เพื่อใช้ซ้ำ
วิธีนี้มีประโยชน์เมื่อคุณต้องการเติมเวกเตอร์ใหม่ตั้งแต่ต้น
fn main() {
let mut v = vec![1, 2, 3];
v.clear();
println!("empty? {}", v.is_empty());
}การตัดให้เหลือความยาวที่กำหนด
เมธอด truncate ทำให้เวกเตอร์สั้นลงจนมีความยาวที่เลือก โดยทิ้งสมาชิกส่วนเกินท้ายเวกเตอร์ หากเวกเตอร์สั้นกว่านั้นอยู่แล้ว จะไม่มีอะไรเกิดขึ้น
ในที่นี้เราเก็บไว้เพียงสองสมาชิกแรก
fn main() {
let mut v = vec![1, 2, 3, 4, 5];
v.truncate(2);
println!("{:?}", v);
}การรวมด้วย extend
เมธอด extend เติมสมาชิกทุกตัวจากคอลเลกชันอื่นต่อท้าย เปรียบเสมือนการเรียก push กับสมาชิกแต่ละตัวในขั้นตอนเดียว
ด้านล่างนี้ เราเพิ่มรายการที่สองต่อท้ายรายการแรก
fn main() {
let mut v = vec![1, 2];
v.extend(vec![3, 4, 5]);
println!("{:?}", v);
}การเก็บไว้เพียงบางส่วนด้วย retain
เมธอด retain จะเก็บเฉพาะสมาชิกที่ผ่านการทดสอบ และลบสมาชิกที่เหลือออกจากเวกเตอร์เดิม คุณต้องส่งคลอเชอร์ที่คืนค่าบูลีนให้เมธอดนี้
ในที่นี้เราเก็บไว้เฉพาะจำนวนคู่
fn main() {
let mut v = vec![1, 2, 3, 4, 5, 6];
v.retain(|n| n % 2 == 0);
println!("{:?}", v);
}การเรียงลำดับสมาชิก
เมธอด sort เรียงสมาชิกจากน้อยไปมากภายในเวกเตอร์เดิม โดยไม่เปลี่ยนความยาว มีเพียงการจัดเรียงที่เปลี่ยนไป
การเรียงลำดับต้องใช้เวกเตอร์ที่เป็น mut
fn main() {
let mut v = vec![3, 1, 4, 1, 5];
v.sort();
println!("{:?}", v);
}ตรวจสอบความเข้าใจ
ทดสอบความเข้าใจของคุณเกี่ยวกับการเพิ่มและลดขนาดเวกเตอร์
สรุปทบทวน
คุณเพิ่มขนาดเวกเตอร์ด้วย push, insert และ extend และลดขนาดด้วย pop, remove, swap_remove, clear และ truncate
คุณยังกรองสมาชิกด้วย retain และจัดลำดับด้วย sort ต่อไปคุณจะเรียนรู้การเก็บโครงสร้างข้อมูลไว้ภายในเวกเตอร์
เรียนรู้ Rust ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 39
- บทเรียน
- 144
คำถามที่พบบ่อย
บทเรียน “การขยายและลดขนาด” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การขยายและลดขนาด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn Rust Coding ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn Rust Coding มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การขยายและลดขนาด”
แทรก ลบ และปรับขนาด คุณปฏิบัติ Learn Rust Coding ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn Rust Coding หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn Rust Coding บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การขยายและลดขนาด” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Learn Rust Coding นี้ได้ไหม
ได้ บทเรียน Learn Rust Coding ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- สร้างและเติมเวกเตอร์
- การใช้ดัชนีและการวนซ้ำ
- การขยายและลดขนาด
- เวกเตอร์ของ struct