stl 容器怎样解决这个问题。

hjjdebug hjjdebug 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
先上部分代码来说明问题。

#include "stdafx.h"

#include <iostream>
#include <string>
#include <vector>
#include <map>
using namespace std;

typedef struct tagItem{
string name;
int value;
}Item;

typedef struct tagSum{
string name;
vector<int> vec;
}Sum;

Item items[] = {
{"he", 1},
{"he", 4},
{"he", 7},
{"wang", 2},
{"wang", 5},
{"wang", 8}
};

// 需要生成两个对象。
// Sum sum1 = {"he", [1,4,7]};
// Sum sum2 = { "wang", [ 2,5,8 ]}


int _tmain(int argc, _TCHAR* argv[])
{
Sum sum;

printf("press a key to exit\n");
_getch();
return 0;
}



就好比说,一个人,1号花了1块钱,2号花了4块钱,3号花了7块钱,
另一个人,1号花了2块钱,2号花了5块钱,3号花了8块钱,
这些数据,我们已经把它装到items 变量了,
现在想统计一下, 每一个人,每天花了多少钱
其结果应该是 {"he",[1,4,7]}, {"wang, [2,5,8]},
假如有第三人, 或可能是{"li",[4,7,8,9,10]},
总之,是一个名称后面对应着一个数组。

这个问题, 如果用纯c 一刀一枪的,又是分配内存,又是copy 名称,太累。
感觉用stl 的map, 稍稍insert 一下,可能就能解决问题。一个键是名称,
一个值是数组。
stl我不熟,哪位肯不吝赐教!
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
hjjdebug
C++ 语言 65,214 成员 250,514 内容