vector <pair <aStruct*,int >>不可能吗?

1 c++ struct vector std-pair

所以我试着创建一个向量,其中元素是结构指针和int的对,我开始认为这可能是不可能的..

假设我有以下结构:

struct node{
  string str;
  int size;
  node *child[3];
  node(string str1):str(str1){ size = 0;}
};
Run Code Online (Sandbox Code Playgroud)

和矢量:

vector< pair<node*,int> > nodvector;
Run Code Online (Sandbox Code Playgroud)

然后我尝试创建一个新节点并将其放在向量中,显然它不起作用:

int main(){
   node* nod1 = new node("HELLO");
   node* nod2 = new node("WORLD");
   nodevector.push_back(pair<nod1,3>);
   delete nod1;
   delete nod2;
}
Run Code Online (Sandbox Code Playgroud)

编译器咆哮着说:nod1不能出现在常量表达式错误中:模板参数1无效错误:模板struct std :: pair的模板参数列表中参数2的类型/值不匹配

这只是不可能的事吗?什么可以替代解决方案呢?您的意见将非常感谢!

Fra*_*ank 8

创建新对时,请make_pair改用.

这样可行: nodevector.push_back(make_pair(nod1, 3));