Skip to content
เข้าสู่ระบบ

Collections

ปกติเวลาเราใช้ Array หรือ Tuple ข้อมูลมันจะวางอยู่บน Stack (ถ้าขนาดคงที่) แต่ Collections พวกนี้ข้อมูลจะอยู่บน Heap ครับ แปลว่าขนาดมันยืดหดได้ตามใจชอบ

ลองนึกภาพว่า Collections เป็นเหมือน “กล่องมายากล” ที่ใส่ของได้เรื่อยๆ ไม่มีจำกัดขนาด!

Vector ก็คือ Array ที่เพิ่มลดขนาดได้

fn main() {
// ============================================
// Vec::new() = สร้าง Vector ว่าง
// ============================================
let mut v1: Vec<i32> = Vec::new();
v1.push(1);
v1.push(2);
v1.push(3);
// ============================================
// vec! macro = สร้างพร้อมค่าเริ่มต้น
// ============================================
let v2 = vec![1, 2, 3];
let v3 = vec![0; 5]; // [0, 0, 0, 0, 0]
// ============================================
// with_capacity() = กำหนดความจุล่วงหน้า
// ดีสำหรับ performance ถ้ารู้ขนาดโดยประมาณ
// ============================================
let mut v4: Vec<i32> = Vec::with_capacity(100);
println!("v1: {:?}", v1);
println!("v2: {:?}", v2);
println!("v3: {:?}", v3);
println!("v4 capacity: {}, len: {}", v4.capacity(), v4.len());
}

เข้าสู่ระบบเพื่อดูเนื้อหาเต็ม

ยืนยันตัวตนด้วยบัญชี Google เพื่อปลดล็อกบทความทั้งหมด