新たな要素を末尾に追加する。xのコピーを、末尾に追加する。一時オブジェクトxをムーブして、末尾に追加する。capacity()であった場合、この関数の実行は定数時間で行われる。ない場合は、メモリ領域の再確保と、その領域への要素のコピーもしくはムーブが行われるため、線形時間で実行される。vectorの実装で行われるメモリ確保戦略では、再確保の際にそれら要素がぴったり収まるサイズを確保するのではなく、少し多めの1.5倍や2倍といったサイズのメモリを確保し、再確保の回数を減らしている。事前に追加する要素の数がわかっている場合にはreserve()メンバ関数で事前にその要素数分のメモリを確保し、そうでない場合にはvectorのメモリ確保戦略に任せるのがよいだろう。要素を追加した後のsize()が要素を追加する前のcapacity()よりも大きい場合は領域の再確保が生じる。領域の再確保が生じなかった場合には全てのイテレータや参照は有効である。非コピー挿入可能な要素型Tのムーブコンストラクタ以外で例外が発生した場合、副作用は発生しない。C++11?C++03では、「vectorのpush_back()、dequeのpush_back()とpush_front()で例外が発生した場合、副作用が発生しない」という強い保証があった。コピーコンストラクタ、ムーブコンストラクタ、代入演算子、ムーブ代入演算子、あるいはInputIteratorの操作以外で例外が発生した場合、副作用が発生しない。」このため、コピーコンストラクタで例外が発生した場合が保証の範囲外となり、保証が弱まってしまっていた。C++14では、上記文面を見直し、終端(dequeの場合は両端)への単一要素の追加の場合に限りC++03と等価の強い保証を提供するよう修正された。下に提供されています。