ポインタを含むベクトルを作成しようとしています。各ポインターは、構造体を使用して作成したCell
の別のベクトルを指しています。 以下のforループを使用すると、ポインターのベクトルに含まれる要素の数をユーザーが定義できるようになります。より多くのベクトルを指すポインターのベクトルを作成する
vector< vector<Cell>* > vEstore(selection);
for (int t=0; t<selection; t++)
{
vEstore[t] = new vector<Cell>;
vEstore[t]->reserve(1000);
}
これは、私が思うに、私のタイプCell
のデスティネーションベクターへのポインタのベクトルを与える:ここに私のコードです。 これはコンパイルされますが、現在は宛先のベクターにpush_back
を送信しようとしていますが、その方法はわかりません。
struct Cell
{
unsigned long long lr1;
unsigned int cw2;
};
I 2つの値とする方法push_back
このデスティネーションベクターにうまくできません。
デスティネーションベクターは、以下のように型から作られる型セルであるので
?私は、これは先の配列の値を明らかにbinpocket[1]
にポインタデリファレンスし、順番に各要素に対処するだろうと思ったよう
binpocket[1]->lr1.push_back(10);
binpocket[1]->cw2.push_back(12);
私が考えていました...。 しかし、コンパイルされません。
誰でも助けることができます ...これは1つの値しか持たず、とにかくコンパイルされません。
ありがとうございました – Columbo
これはおそらく本当に愚かな質問ですが、なぜ空になったら2回コンストラクタを持っていますか? – Columbo
コンストラクタを指定しない場合、コンパイラは空のデフォルト(つまりパラメータなし)のコンストラクタを作成します。つまり、あなたは '細胞細胞 'を行うことができます。カスタムコンストラクタを提供することによって、コンパイラはデフォルトコンストラクタを作成しません。だから私はそれを提供した。もしあなたが '細胞細胞 'をしたくなければ、それをする必要はありません。 – avakar