于是,我就做一个载体,其元素是对一个结构指针和一个int的,而我开始认为这是不可能的..vector <pair <aStruct *,int>>不可能?
假设我有以下结构:
struct node{
string str;
int size;
node *child[3];
node(string str1):str(str1){ size = 0;}
};
和矢量:
vector< pair<node*,int> > nodvector;
然后我试图做一个新的节点,并把它的向量,显然它不工作:
int main(){
node* nod1 = new node("HELLO");
node* nod2 = new node("WORLD");
nodevector.push_back(pair<nod1,3>);
delete nod1;
delete nod2;
}
编译器树皮在我说: NOD1不能出现在恒定表达 错误:模板参数1无效 错误:在自变量2中为模板结构的std模板参数列表类型/值不匹配::对
这是不可能的事情吗? 有什么可以替代解决方案呢? 您的输入将会非常感谢!
你必须阅读一些C++教程。 –
尽量不要在容器中存储裸指针。这样做很难做到正确的内存管理。 – kennytm
当创建对添加到向量中时,您应该返回像这样的模板参数(nod1,3) 通常,您可以对其进行typedef –
gastush