คำถามติดแท็ก stdmap


17
วิธีการดึงกุญแจทั้งหมด (หรือค่า) จาก std :: map และวางลงในเวคเตอร์?
นี่เป็นวิธีหนึ่งที่ฉันสามารถทำได้: struct RetrieveKey { template <typename T> typename T::first_type operator()(T keyValuePair) const { return keyValuePair.first; } }; map<int, int> m; vector<int> keys; // Retrieve all keys transform(m.begin(), m.end(), back_inserter(keys), RetrieveKey()); // Dump all keys copy(keys.begin(), keys.end(), ostream_iterator<int>(cout, "\n")); แน่นอนว่าเราสามารถดึงค่าทั้งหมดออกจากแผนที่ได้ด้วยการกำหนด functor RetrieveValuesอีกค่า มีวิธีอื่นในการบรรลุเป้าหมายนี้อย่างง่ายดายหรือไม่? (ฉันสงสัยอยู่เสมอว่าทำไม std :: map ไม่รวมฟังก์ชั่นสมาชิกเพื่อให้เราทำเช่นนั้น)
246 c++  dictionary  stl  stdmap 

12
ในแผนที่ STL ควรใช้แผนที่ :: insert มากกว่า [] หรือไม่
ขณะที่ผ่านมาผมได้มีการพูดคุยกับเพื่อนร่วมงานเกี่ยวกับวิธีการใส่ค่าใน STL เป็นแผนที่ ฉันชอบ map[key] = value; เพราะรู้สึกเป็นธรรมชาติและอ่านง่ายในขณะที่เขาชอบ map.insert(std::make_pair(key, value)) ฉันแค่ถามเขาและพวกเราทั้งสองไม่สามารถจำเหตุผลที่แทรกได้ดีกว่า แต่ฉันแน่ใจว่ามันไม่ใช่แค่การตั้งค่ารูปแบบ แต่มีเหตุผลทางเทคนิคเช่นประสิทธิภาพ อ้างอิง SGI STLบอกว่า "พูดอย่างเคร่งครัดฟังก์ชั่นสมาชิกนี้ไม่จำเป็น: มันมีอยู่เพื่อความสะดวกเท่านั้น" ใครสามารถบอกเหตุผลนั้นกับฉันหรือฉันแค่ฝันว่ามี?
201 c++  stl  map  stdmap 

9
วิธีที่ต้องการ / สำนวนในการแทรกลงในแผนที่คืออะไร?
ฉันได้ระบุสี่วิธีในการแทรกองค์ประกอบลงใน a std::map: std::map<int, int> function; function[0] = 42; function.insert(std::map<int, int>::value_type(0, 42)); function.insert(std::pair<int, int>(0, 42)); function.insert(std::make_pair(0, 42)); วิธีใดที่เป็นที่ต้องการ / สำนวน? (และมีวิธีอื่นที่ฉันคิดไม่ถึง?)
115 c++  stl  insert  stdmap  std-pair 

8
std :: map insert หรือ std :: map find?
สมมติว่าเป็นแผนที่ที่คุณต้องการเก็บรักษารายการที่มีอยู่ 20% ของเวลารายการที่คุณกำลังแทรกเป็นข้อมูลใหม่ มีข้อได้เปรียบในการทำ std :: map :: find แล้ว std :: map :: insert โดยใช้ iterator ที่ส่งคืนหรือไม่? หรือมันเร็วกว่าที่จะพยายามแทรกแล้วดำเนินการโดยขึ้นอยู่กับว่าตัววนซ้ำระบุว่าบันทึกนั้นหรือไม่ได้ใส่หรือไม่?
93 c++  optimization  stl  stdmap 

6
จะอัพเดต std :: map ได้อย่างไรหลังจากใช้วิธีค้นหา
จะอัพเดตค่าของคีย์ในstd::mapหลังจากใช้findวิธีนี้ได้อย่างไร? ฉันมีแผนที่และการประกาศตัววนซ้ำดังนี้: map <char, int> m1; map <char, int>::iterator m1_it; typedef pair <char, int> count_pair; ฉันใช้แผนที่เพื่อจัดเก็บจำนวนครั้งที่เกิดขึ้นของตัวละคร ฉันใช้ Visual C ++ 2010
92 c++  map  stl  stdmap 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.