7

グーグルとstackoverflow検索のために私は私を助けることができませんでした私はあなたたちに助けを求めるしかないのです。

ベクトルの配列を使用したいのですが、この配列には2つのベクトルが含まれていれば十分です。したがって

vector<double> testVect[1];

ここで、使用する配列に含まれる最初のベクトルに要素を追加する場合

testVect[0].push_back(0);

これまでのところ、すべて問題ないようです。残念ながら、最初のベクトルに要素を追加すると、2番目のベクトルにも同じ要素(この場合は0)が追加されます。

誰かがこの種の行動の理由を教えてもらえますか?(お願いします)-そしておそらく回避策。現在、私はVisual Studio 6を使用する必要があります(雇用者は新しいコンパイラをインストールしません-私はすでに同僚を集めています:D

4

1 に答える 1

16

2つのベクトルが必要な場合は、次のように宣言する必要があります。

 vector<double> testVect[2];

次に、コードでとを使用testVect[0]testVect[1]ます。

また、コンパイラですべての警告を有効にする必要があります。

ところで、最近のLinuxディストリビューションと最近のGCCコンパイラ(例:4.7)をインストールして、これまでのように範囲外g++ -Wall -gに静的にアクセスした場合に警告が表示されるので、それを実行できtestVectます。

GNU / LinuxとGCCはどちらも無料なので、マネージャーは喜ぶかもしれません。

于 2012-12-05T17:17:09.297 に答える