は、だから私は、要素が構造体のポインタとint型のペアでベクトルを作ってみました、と私は、これは不可能であり得ることを考え始めています。..ベクトル<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無効 エラーです:テンプレート構造体のstdテンプレートパラメータリスト内の引数2の種類/値の不一致::ペア
は、これはまったく不可能ですか? これに代わる方法は何ですか? あなたのご意見は非常に高く評価されます!
C++のチュートリアルを読んでください。 –
裸のポインタをコンテナに保管しないようにしてください。このように正しいメモリ管理を行うのは難しいです。 – kennytm
ベクトルを追加するためにペアを作成するときは、このペアのようなテンプレート引数を返すべきです。(nod1,3) 通常、あなたはそれのtypedefを行います –
gastush