タグ付けされた質問 「container-data-type」

9
なぜ参照のベクトルを作成できないのですか?
私がこれをするとき: std::vector<int> hello; すべてがうまくいきます。ただし、代わりに参照のベクトルにすると、次のようになります。 std::vector<int &> hello; 次のような恐ろしいエラーが発生します エラーC2528: 'ポインター':参照へのポインターが不正です 構造体への一連の参照をベクトルに入れたいので、ポインターをいじる必要はありません。なぜベクトルはこれについてかんしゃくを投げているのですか?代わりにポインタのベクトルを使用する唯一のオプションはありますか?

7
C ++ 11でメンバー以外の開始関数と終了関数を使用する理由
すべての標準コンテナには、そのコンテナのイテレータを返すためのbeginおよびendメソッドがあります。ただし、C ++ 11には、と呼ばれる無料の関数と、およびのメンバー関数を呼び出すことが明らかに導入されstd::beginてstd::endいます。だから、書く代わりにbeginend auto i = v.begin(); auto e = v.end(); あなたは書くでしょう auto i = std::begin(v); auto e = std::end(v); Herb Sutterは、彼の講演「Writing Modern C ++」で、コンテナーの開始イテレーターまたは終了イテレーターが必要な場合は常に無料の関数を使用する必要があると述べています。しかし、なぜあなたがそうしたいのかについて彼は詳細には触れません。コードを見ると、1つの文字をすべて節約できます。したがって、標準のコンテナに関する限り、無料の関数はまったく役に立たないようです。Herb Sutterは、非標準のコンテナにはメリットがあると述べましたが、ここでも詳細には触れませんでした。 では、問題は、の無料の関数バージョンが正確に何でstd::beginありstd::end、対応するメンバー関数のバージョンを呼び出す以外に何をするのか、そしてなぜそれらを使用したいのでしょうか?

10
特定のSTLコンテナを使用するのはどのシナリオですか?
私はC ++に関する本でSTLコンテナー、特にSTLとそのコンテナーに関するセクションを読んでいます。今、私はそれらのそれぞれに固有の特性があることを理解し、それらのすべてを暗記するところです...しかし、まだ理解していないのは、それぞれがどのシナリオで使用されているかです。 説明は何ですか?サンプルコードをお勧めします。

3
「size_t」対「container :: size_type」
とに違いはsize_tありcontainer::size_typeますか? 私が理解しているのsize_tは、より一般的なものであり、どのsize_typesにも使用できます。 しかしcontainer::size_type、特定の種類のコンテナ用に最適化されていますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.