4

vec.end()タイトルについてですが、位置パラメータとして渡してもよろしいでしょうか?すなわち、の動作です

std::vector<int> vec;
vec.insert(vec.end(), 0);

よく定義されていますか?

4

2 に答える 2

7

はい、明確に定義されています。begin()ベクトルが空の場合、 に等しいと仮定しend()ます。その効果は、イテレータの前に要素のコピーを挿入することです。

§ 表 100 — シーケンスコンテナの要件 (コンテナに加えて)

|------------------------------------------------------------------------------|
|a.insert(p,t)  | iterator    Requires:T shall be CopyInsertable into X. For   |
|               |             vector and deque, T shall also be CopyAssignable.|
|               |             Effects: Inserts a copy of t before p.           |
-------------------------------------------------------------------------------|

も見てください: std::vector::insert

于 2013-09-13T12:54:43.393 に答える
6

はい、挿入関数に渡される反復子は、新しい要素が挿入される前の位置を示します。したがって、 at を挿入end()すると、要素がコンテナー内の最後の要素になります。

于 2013-09-13T12:55:09.203 に答える