-3

我有一个包含数据的向量

记录 1:03:泰德
记录 2:06:玛丽
记录 3:23:渡轮

我如何删除Record 2,以一种Record 3数据不会推高并最终变成的方式Record 2

4

1 回答 1

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

有关完整的演示,请参阅此处fpr C++11,或此处查看 C++03,尽管 C++03 可以改进,insert因此不需要默认构造函数Record。我想 C++11 也可以const在迭代时使用,尽管这不是重点。

于 2013-02-03T16:12:47.083 回答