คำตอบ SO นี้บอกว่าแผนที่ STL พร้อม Vector สำหรับคีย์นั้นเวกเตอร์สามารถใช้เป็นคีย์ได้ ดังนั้นเมื่อเราใช้เวกเตอร์เป็นกุญแจ ใช้งานได้จริงอย่างไรเนื่องจากคีย์ต้องไม่ซ้ำกันดังนั้นเมื่อเราแทรกเวกเตอร์อื่นที่มีองค์ประกอบเดียวกันจะmap
ตรวจสอบองค์ประกอบที่ซ้ำกันตามองค์ประกอบหรือชื่อของเวกเตอร์ระบุบางอย่าง เช่นเดียวกับชื่อของอาร์เรย์หมายถึงที่อยู่ฐาน ดังนั้นอาเรย์สามารถใช้เป็นคีย์ได้เนื่องจากที่อยู่พื้นฐานสามารถใช้เป็นคีย์ในกรณีนี้ แต่คีย์ในกรณีของเวกเตอร์คืออะไร มันทำงานอย่างไรภายใน
เพราะเมื่อฉันพิมพ์ชื่อของเวกเตอร์ฉันจะได้รับข้อผิดพลาด
vector<int> v;
cout<<v; //error
has operators == and <
มันช่วยได้อย่างไร คำถามของฉันคือการตรวจสอบองค์ประกอบที่ซ้ำกันจะแมปเปรียบเทียบองค์ประกอบสำคัญของเวกเตอร์ตามองค์ประกอบ
std::vector
คุณจ่ายสำหรับสิ่งที่คุณใช้ สามารถทำได้และอาจมีกรณีการใช้งานบางอย่าง แต่แน่นอนที่สุดคุณสามารถเปลี่ยนโครงสร้างข้อมูลที่คุณเลือก คอนเทนเนอร์ STL ได้รับการออกแบบให้มีความหลากหลายและสามารถใช้งานได้ในทุกวิถีทางที่ผู้ใช้อาจต้องการใช้ std::map
std::map
จะคัดลอกคีย์และค่าลงในตัวมันเอง std::unordered_map
สามารถเก็บแฮชของกุญแจได้