关STL容器

来源:百度知道 编辑:UC知道 时间:2024/06/05 03:21:46
有一个pair容器,两个成员是int,vector
vector的成员又是上面那个pair的指针
请问应该怎么定义?
这样写不对 pair<int,vector<node *>> node;
这么写也不对
typedef vector<node *> pVec;
pair<int,pVec> node;

这么写是对的
typedef vector<int> pVec;
pair<int,pVec> node;

回:自由心魔
你的意思我理解,当然也可以定义struct
但pair本身就是STL中的标准容器模板,就像vector,map,list一样。
我只是刚开始学STL,只知其表。
是不是根本就不能这样定义,只能自己定义一个struct或class

虽然不知道你定义的这么强大的一个pair是干什么的。不过还是用心的看了一下。
想了一下,发现C++我还没忘,以前一段ICPC的训练没白费啊,下面是我的程序
#include <iostream>
#include <vector>
#include <utility>
using namespace std;

class temp
{
public:
typedef vector<temp*> Vec;
typedef pair<int,Vec> Pair;

Pair a; //定义一个a是为了使类中有成员,上面的typedef重命名根本不是成员
};
typedef temp::Pair YouWant; //你想要的类型,用typedef重命名一下
int main()
{
YouWant c;
system("pause");
return 0;
}
YouWant就是你要的类型,不过我很想不通你要这个类型有什么用
有什么不懂的给我发消息,或是上我的空间留言啊

就直接是
/////pair 既然是个容器 那么你就得自己定义 我想你说的容器就是自定义类型吧
class pair
{
protected:
vector<int> i;
int j;
};

vector<*pair>

不知道我理解对了不 不对的话你就mmmmm我吧 我想对于vector我还是有一定的了解的

个人觉得这样不行。
模板需要根据具体型别来进行特化,而你的需求形成了一个怪圈,就好像先有鸡还是先有蛋一样~~