-3

次のデータを持つベクトルがあります

レコード 1: 03: テッド
レコード 2: 06: メアリー
レコード 3: 23: フェリー

データが押し上げられず、最終的に になるRecord 2ように削除するにはどうすればよいですか?Record 3Record 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デフォルトのコンストラクターはありません。RecordC ++ 11はconst反復時にも使用できると思いますが、それは重要ではありません。

于 2013-02-03T16:12:47.083 に答える