std::vector<T,Allocator>::push_back
void push_back( const T& value );
|
(1) | (C++20 から constexpr) |
void push_back( T&& value );
|
(2) | (C++11 から) (C++20 から constexpr) |
指定された要素 value をコンテナの末尾に追加します。
value のコピーとして初期化されます。value が新しい要素にムーブされます。操作後に新しい size() が古い capacity() より大きい場合、再割り当てが発生し、その場合すべてのイテレータ(end() イテレータを含む)と要素へのすべての参照が無効になります。そうでない場合は、end() イテレータのみが無効になります。
パラメータ
| value | - | 追加する要素の値 |
|
(C++11以降) | ||||||
戻り値
(なし)
計算量
償却定数時間。
例外
例外がスローされた場合(
Allocator::allocate()
または要素のコピー/ムーブコンストラクタ/代入による可能性あり)、この関数は何も効果を持ちません(
strong exception guarantee
)。
|
|
(C++11以降) |
注記
一部の実装では、
std::length_error
をスローする場合がある。これは
push_back
が
max_size
を超える再割り当てを引き起こすとき(
reserve
(
size
() + 1))
と同等の暗黙的な呼び出しによる)である。
例
#include <iomanip> #include <iostream> #include <string> #include <vector> int main() { std::vector<std::string> letters; letters.push_back("abc"); std::string s{"def"}; letters.push_back(std::move(s)); std::cout << "std::vector letters holds: "; for (auto&& e : letters) std::cout << std::quoted(e) << ' '; std::cout << "\nMoved-from string s holds: " << std::quoted(s) << '\n'; }
出力例:
std::vector letters holds: "abc" "def" Moved-from string s holds: ""
関連項目
|
(C++11)
|
要素をその場で末尾に構築する
(公開メンバ関数) |
|
末尾の要素を削除する
(公開メンバ関数) |
|
|
引数から推論された型の
std::back_insert_iterator
を作成する
(関数テンプレート) |