没人写过这样的代码吗?
有写过也不会带身边啊,我简略地写了一个例子:
[CODE]#pragma warning(disable : 4786)
#include<map>
#include <vector>
#include <iostream>
#include <string>
using namespace std;
typedef vector<int>* PVECTOR_INT;
typedef pair<string, PVECTOR_INT> S_V_PAIR;
void main()
{
vector<int> vtemp1;
vector<int> vtemp2;
map<string,PVECTOR_INT> m;
map<string,PVECTOR_INT>::iterator iter = NULL;
vector<int>::size_type size;
vtemp1.push_back(0);
vtemp1.push_back(1);
vtemp2.push_back(0);
vtemp2.push_back(1);
vtemp2.push_back(2);
m.insert(S_V_PAIR("test1", &vtemp1));
m.insert(S_V_PAIR("test2", &vtemp2));
for (iter = m.begin(); iter != m.end(); iter ++)
{
size = (PVECTOR_INT(iter->second))->size();
cout<<"element "<<iter->first<<" size:"<<size<<endl;
}
m.clear();
vtemp1.clear();
vtemp2.clear();
}[/CODE]
恭喜版主,呵呵,高手一出手,就知有没有
我还没学到数据结构的映射容器这,还在学队列,慢慢来吧,好想和你一样强
用指针而不直接用vector本身的问题就是vector的寿命不好控制,例如这段程序不是在main()中写的,而是在随便的函数中写的,要返回map<string,PVECTOR_INT>的指针,这时vector类是局部变量还是new出来的就很关键了。
所以说要维护的东西多了点,vector都用new出来的,一般情况下会写一个模板函数来释放容器中的指针,如下: