0

こんにちは、宿題があり、最後の要件を除いてすべて完了しました。txt ファイルからデータを取得していますが、興行収入の値のいくつかは 0 です。0 の最初のインスタンスを返す代わりに、0 の最後のインスタンスを返します。コードのスニペットを次に示します。

long long worldBoxOffice = movie.getWorldBoxOffice();
movieMap.insert(pair<long long, Movie>(worldBoxOffice, movie));

ペアをマップに挿入した後、何をすればよいのでしょうか? [] 演算子をオーバーロードしますか? ちょっと混乱しているので、助けていただければ幸いです。コードを探しているのではなく、それについて正しい方向にプッシュするだけなので、これ以上コードを投稿しませんでした。ありがとう。

注: マップを使用する必要があり、複数のマップを使用することは許可されていません。

4

2 に答える 2

2

誤解しているかもしれませんが、データを読み込むときに代わりにマップに割り当てるために使用すると、次の簡単な例のようにoperator []、最後に読み込んだインスタンスになります。0

#include <iostream>
#include <map>

int main()
{
   std::map<int,int>
    m ;

    m[0] = 1 ;

    std::cout << m[0] << std::endl ;

    m[1] = 2 ;

    m[0] = 3 ;

    std::cout << m[0] << std::endl ;
}
于 2013-03-14T03:56:15.490 に答える
1

insert 既存のキーを置き換えないため、そもそも使用しないでください。このような (効果のない) 挿入を行った後は、データを取り戻すことはできません。

[]演算子を使用できます:movieMap[worldBoxOffice] = movie;または逆の順序で挿入を行います - ファイルを逆方向​​に読み取ります。

于 2013-03-14T03:57:44.910 に答える