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 回答