2

unsigned int を例に取りましょう。std::vector<char>したがって、ベクトルの次の 4 バイトが uint の 4 バイトによって設定されるように、unsigned int を an に追加したいと考えています。

ここで、Sharptooth の回答を使用して実行したいと思いますが、2 つの質問があります。

  1. このメソッドを使用して、ベクトルの最初の空き位置 (end反復子が指す場所)から始まる uint を挿入するにはどうすればよいですか。
  2. ベクトルの関数ではないものendを使用してベクトルにコピーすると、イテレータがインクリメントされるのだろうか。memcpy

2 の答えが否定的である場合、このタスクを達成するための最良の方法としてどの方法をお勧めしますか? 上記のリンクの他の回答は、ベクトルの先頭に追加することを参照しています。

この質問は、他の POD についても言及しています。

4

2 に答える 2

2

リンクした回答の調整:

myVector.insert(myVector.end(), begin_binary(num), end_binary(num));

begin 関数と end 関数は、挿入する値をキャストするだけです。このようにすると、ベクトルのサイズ (および必要に応じてその容量) が増加します。

于 2013-05-27T12:31:04.523 に答える
2

1,2

std::copy(begin_binary(num), end_binary(num), std::back_inserter(my_vector));

STL は、新しい要素を挿入する際にベクター サイズを自動的に管理します。

于 2013-05-27T12:32:08.883 に答える