13
remove_if เทียบเท่าสำหรับ std :: map
ฉันพยายามลบองค์ประกอบต่างๆออกจากแผนที่ตามเงื่อนไขเฉพาะ ฉันจะทำได้อย่างไรโดยใช้อัลกอริทึม STL เริ่มแรกฉันคิดว่าจะใช้ remove_ifแต่เป็นไปไม่ได้เนื่องจาก remove_if ใช้ไม่ได้กับคอนเทนเนอร์ที่เชื่อมโยง มีอัลกอริทึมที่เทียบเท่า "remove_if" ที่ใช้ได้กับแผนที่หรือไม่ ในฐานะตัวเลือกง่ายๆฉันคิดว่าจะวนลูปผ่านแผนที่และลบ แต่กำลังวนรอบแผนที่และลบตัวเลือกที่ปลอดภัยหรือไม่ (เนื่องจากตัวทำซ้ำไม่ถูกต้องหลังจากลบ) ฉันใช้ตัวอย่างต่อไปนี้: bool predicate(const std::pair<int,std::string>& x) { return x.first > 2; } int main(void) { std::map<int, std::string> aMap; aMap[2] = "two"; aMap[3] = "three"; aMap[4] = "four"; aMap[5] = "five"; aMap[6] = "six"; // does not work, an …