我有一个包含数据的向量
记录 1:03:泰德
记录 2:06:玛丽
记录 3:23:渡轮
我如何删除Record 2
,以一种Record 3
数据不会推高并最终变成的方式Record 2
?
如果我理解正确,请使用记录编号映射到记录:
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
有关完整的演示,请参阅此处fpr C++11,或此处查看 C++03,尽管 C++03 可以改进,insert
因此不需要默认构造函数Record
。我想 C++11 也可以const
在迭代时使用,尽管这不是重点。