私は経験が少ないC ++プログラマです。
を使用しSTL mapていくつかのデータを保存および操作したい場合、これらの2つのデータ構造アプローチの間に(パフォーマンスにも)意味のある違いがあるかどうかを知りたいと思います。
Choice 1:
map<int, pair<string, bool> >
Choice 2:
struct Ente {
string name;
bool flag;
}
map<int, Ente>
具体的にはstruct、シンプルではなくを使用してオーバーヘッドがありますpairか?
std::pairはテンプレートです。std::pair<string, bool>構造体です。
pairセマンティクスがまったくありません。あなたのコードを読んでいる人(将来あなたも含む)e.firstは、明示的に指摘しない限り、それが何かの名前であることを知りません。私はその中で固く信じていますpairと非常に貧しいと怠惰加えたstd、そしてそれは考えられていたとき、誰もが、いつの日か、誰もがこれを使用しようとしている」と思っていないことをすべての二つのことで、誰もが何を誰のコード手段を知っているんだろう「。
mapイテレータは有効な例外ではないというのはあまりにも悪いことです。(「最初」=キーと「2番目」=値...本当に、std本当に?)
std::pairは構造体です。