私が書いているアプリケーションでは、データを次のようなオブジェクトに保存します
std::vector<my_struct> db;
多くの場合、それらの要素のいくつかを参照し、それらの位置をベクトルに格納する std::set を使用する必要があります (これは変更されません)。
std::set<int> elements_i_like;
次に、db要素にアクセスします
for ( auto it = elements_i_like.begin(); it!=elements_i_like.end(); it++){
db[*it].do_something();
}
ただし、要素のインデックスをベクトルに格納するのではなく、それらを直接参照する方がパフォーマンスの面で優れているのでしょうか。
std::vector<my_struct> db; //where i store the data (edit form original question)
std::set<my_struct&> elements_i_like;//reference to the specific structs, stored in the vector, that i want to iterate on
そして、やります
for( auto it= elements_i_like.begin(); it!=elements_i_like.end(); it++){
(*it).do_something();
}
また、そうすることで何らかの欠点が生じる可能性はありますか? ありがとう。