stl 容器怎样解决这个问题。
先上部分代码来说明问题。
就好比说,一个人,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我不熟,哪位肯不吝赐教!
#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我不熟,哪位肯不吝赐教!
...全文
相关推荐
浅谈c++ stl迭代器失效的问题
"C++ STL迭代器失效的问题及解决方法"在C++的STL(Standard Template Library)中,容器如vector、list、deque等都提供了迭代器作为访问元素的主要手段
stl线程安全
#### 三、解决STL线程安全问题的方法为了确保STL容器在多线程环境下的线程安全,程序员通常需要自行添加额外的同步机制。常见的解决方案包括:1.
STL中文手册 doc文档
这个“STL中文手册 doc文档”显然是为了解决C++程序员在使用STL时遇到的问题,帮助他们更好地理解和运用这个强大的工具。
基于stl共享内存,可以像使用STL容器一样使用共享内存
将STL与共享内存结合,可以创建出跨进程通信的有效解决方案。
STL_Easy一个面向C初学者的STL标准模板库学习与实现项目_通过详细注释的代码示例分步骤的实践练习和常见问题解答涵盖容器如vectorlistmapse.zip
STL_Easy项目还提供了一个常见问题解答的环节,旨在帮助学习者解决在学习STL时可能遇到的困惑和难点。这个部分会收录一些典型的问题,并给出清晰的解释和解决方案,以便学习者能够更快地克服学习障碍。


