void swap(set& st);
void swap(set& x)
noexcept(allocator_traits<Allocator>::is_always_equal::value
&& noexcept(swap(declval<Compare&>(),declval<Compare&>()))); // C++17
概要
コンテナ内のコンテンツを、同じ型の要素を保持する他の set
オブジェクトである st
内のコンテンツと交換する。サイズは異なる場合もある。
このメンバ関数の呼び出しの後、呼び出し前にコンテナ内にあった要素は st
へ、st
内にあった要素は *this
へ移る。全てのイテレータ、参照、ポインタは有効なまま残る。
パラメータ
st
*this
とコンテンツを交換する、同じ型のset
コンテナ。
計算量
定数時間
例
#include <iostream>
#include <set>
int main()
{
std::set<int> c1, c2;
c1.insert(10);
c1.insert(20);
c1.insert(30);
c2.insert(5);
c2.insert(15);
c1.swap(c2);
std::set<int>::iterator i = c1.begin();
while (i != c1.end()) {
std::cout << *(i++) << ",";
}
std::cout << std::endl;
}
23
#include <iostream>
#include <set>
int main()
{
std::set<int> c1, c2;
c1.insert(10);
c1.insert(20);
c1.insert(30);
c2.insert(5);
c2.insert(15);
c1.swap(c2);
std::set<int>::iterator i = c1.begin();
while (i != c1.end()) {
出力
5,15,
参照
- N4258 Cleaning-up noexcept in the Library, Rev 3
noexcept
追加の経緯となる提案文書