次のデータを持つベクトルがあります
レコード 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
反復時にも使用できると思いますが、それは重要ではありません。