具有2个值的STL贴图
STL map with 2 values
我正在编写一个程序,读取电影及其评级的文本文件
movies.txt
7
Happy Feet
4
Happy Feet
5
Pirates of the Caribbean
3
Happy Feet
4
Pirates of the Caribbean
4
Flags of our Fathers
5
Gigli
1
第一个值(7)用于for循环,这是一个赋值,所以我不能更改任何内容。
我的任务是使用一张或多张地图来存储电影、评论次数(一部电影被评论的次数,例如《快乐大脚》的3次)和平均评论分数。我怀疑我可以使用多映射来实现这一点,但我找不到类似的例子,所以我开始使用嵌套映射来实现它。
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
#include <cctype>
#include <map>
using std::cout;
using std::endl;
using std::isspace;
using std::getline;
using std::string;
using std::ifstream;
using std::map;
#include "Map.h"
int main(){
ifstream inStream;
int number, rating;
string name;
map<int, int> movieMap;
map<string, map<int, int>> reviewMap;
inStream.open("movies.txt");
inStream >> number;
inStream.ignore();
for (int count = 0; count < number; count++){
getline(inStream, name);
inStream >> rating;
inStream.ignore();
++reviewMap[name][rating];
}
std::map<int, int>::iterator itr1;
std::map<string, map<int, int>>::iterator itr2;
for (itr2 = reviewMap.begin(); itr2 != reviewMap.end(); itr2++)
{
std::cout << "n " << itr2->first << endl;
for (itr1 = itr2->second.begin(); itr1 != itr2->second.end(); itr1++)
{
std::cout << "n" << itr1->first << endl;
}
}
system("pause");
return(0);
因此,目前我的代码是按照我的意愿存储电影名称,但它将我的评论次数和评论分数存储为单独的值。
例如,当我为Happy Feet cout itr1->second
时,我得到了2个值,2和1,其中我想要1个值3,复习分数被存储为单独的值,但只有当它们是唯一的时,所以Happy Foot存储了2个数值,4和5,其中我要1个值13(这个数值最终必须是平均值,当我找到它时,我会跨过这座桥)。
我不是在寻找一个完整的解决方案,只是一个指向正确方向的指针。
一个简单的地图就足以满足您的需求。
从数据结构开始:
struct Rating
{
int number;
int totalRating;
};
map<string, Rating> reviewMap;
然后你只需要继续计算总数。由此,您可以计算平均评级。
相关文章:
- 更改高度贴图,使其在 4x4 网格上显示 16 个 hieghtmap
- 深度缓冲区未填充阴影贴图渲染通道中的数据
- OpenGL - 阴影贴图/深度贴图给出奇怪的结果
- C++如何创建自动投射贴图?
- OpenGL 高度贴图渲染器无法生成平滑地形
- 从Qt3D PickEvent获取漫反射贴图RGB数据
- Opengl es 2.0中带有立方体贴图的阴影贴图
- Push_front()用于矢量,运算符++用于贴图
- 带法线贴图的Binormal和Tangent
- 从包含贴图的deque中删除元素
- 用于多个目标的2D平铺贴图的路径查找
- 以一个键和一对作为值对贴图进行排序
- 具有2个值的STL贴图
- 增加贴图的值
- 阴影贴图.帧缓冲区错误36060
- STL中关联数组(贴图)的速度
- 试图找到贴图的幅值图像
- 插值高度贴图中出现的尖锐三角形
- 比较两个(非STL)贴图是否相等
- 我可以在不执行任何旋转的情况下预加载 STL 贴图吗?