我有一个载体,其数据为
记录1:03:特德
记录2:06:玛丽 记录3:23:渡轮
如何以Record 2
数据无法推升并最终成为Record 3
的方式删除Record 2
?
答案 0 :(得分:1)
如果我理解正确,请使用记录号码地图记录:
std::unordered_map<std::size_t, Record> records{ //or std::map in C++03
{1, {"03", "Ted"}}, //or records[1] = Record("03", "Ted") in C++03
{2, {"06", "Mary"}}, //or records[2] = Record("06", "Mary") in C++03
{3, {"23", "Ferry"}} //or records[3] = Record("23", "Ferry") in C++03
};
records.erase(2); //leaves records[1] and records[3] intact
要完整演示,see here fpr C ++ 11,或here for C ++ 03,尽管可以使用insert
改进C ++ 03,所以没有需要Record
的默认构造函数。我想C ++ 11也可以在迭代时使用const
,尽管这不是重点。