std::vector<T,Allocator>:: push_back
|
void
push_back
(
const
T
&
value
)
;
|
(1) | (constexpr C++20以降) |
|
void
push_back
(
T
&&
value
)
;
|
(2) |
(C++11以降)
(constexpr C++20以降) |
コンテナの末尾に 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
を作成する
(関数テンプレート) |