これは私自身の知識のためにもっと質問です。 ベクター内の単一要素の複数のプロパティにアクセスするためのベストプラクティスはありますか?申し訳ありませんが、その質問があまり意味がない場合。シナリオを教えてください:C++ベクトル要素のプロパティにアクセスするための最良の方法
私はいくつかのコードを作業していましたが、ここで構造体のベクトルを作成しました。ベクトル内のデータを複製しないようにするために、入力データの複数の部分を、forループを介してベクトル内の既存のデータと照合してチェックします。データは複数の独立したソースから、時には連続して追加されることもあるので、この時点までに各エントリのマスターIDを作成するのは少し難しいです。コードはこのような何かを見終わる:いくつかの他のプログラミング言語で
vector<testStruct> test;
void addDataToVector(int _iData1, string _sData2, unsigned int _uiData3){
testStruct tmp;
tmp.iData1 = _iData1;
tmp.sData2 = _sData2;
tmp.uiData3 = _uiData3;
if(test.size() > 0){
for(size_t i = 0;; i < test.size(); i++){
if(test[i].iData1 == tmp.iData1 &&
test[i].sData2 == tmp.sData2 &&
test[i].uiData3 == tmp.uiData3){
break;
}else{
test.push_back(tmp);
}
}
}else{
test.push_back(tmp);
}
}
を、私はこのような配列の同じ要素に複数の呼び出しを行うことは少し無駄であることを学びました。 Action Script 3では、要素の内容を一時変数に代入し、ベクトルに何度も繰り返しアクセスするのではなく、その変数を複数の呼び出しに使用する方が良いということを学びました。 C++には注意が必要なことがあるのでしょうか?私はベクトルがポインタであることを理解しています...私は思います。しかし、私はそれが多くを緩和するかどうか、あるいは私がまだそのようなことのために外見にいる必要があるかどうかは分かりません。私は同様のデータ/回答を探してみましたが、私の検索語をどのように語るのかは正確には分かりませんでした。
何か助けや指導(hehe get it?)をいただければ幸いです。
ベクター内の要素の順序は重要ですか? – Pavel
_ "ベクトルがポインタであることを理解しています..." –
これは早すぎる最適化のようです。それは多くのことに依存します。私のアドバイスは:新しい一時変数を導入しようとしてコードを最適化しようとしないでください。コンパイラは通常あなたよりも優れた仕事をします。 –