私は経験が少ない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
は構造体です。