於是,我就做一個載體,其元素是對一個結構指針和一個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