首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

std::vector::swap

void swap( vector& other );

(until C++17)

void swap( vector& other ) noexcept(/* see below */);

(since C++17)

将容器的内容与other不对单个元素调用任何移动、复制或交换操作。

所有迭代器和引用仍然有效。过去的迭代器无效.

If std::allocator_traits<allocator_type>::propagate_on_container_swap::value is true, then the allocators are exchanged using an unqualified call to non-member swap. Otherwise, they are not swapped (and if get_allocator() != other.get_allocator(), the behavior is undefined).

(since C++11)

参数

other

-

container to exchange the contents with

返回值

%280%29

例外

(none).

(until C++17)

noexcept specification: noexcept(std::allocator_traits<Allocator>::propagate_on_container_swap::value || std::allocator_traits<Allocator>::is_always_equal::value)

(since C++17)

复杂性

常量。

另见

std::swap(std::vector)

specializes the std::swap algorithm (function template)

二次

代码语言:javascript
复制
#include <vector>
#include <iostream>
 
void printVector(std::vector<int>& vec)
{
    for (int a : vec)
    {
        std::cout << a << " ";
    }
}
 
int main()
{
    std::vector<int> v1{1, 2, 3};
    std::vector<int> v2{7, 8, 9};
 
    std::cout << "v1: ";
    printVector(v1);
 
    std::cout << "\nv2: ";
    printVector(v2);
 
    std::cout << "\n-- SWAP\n";
    v2.swap(v1);
 
    std::cout << "v1: ";
    printVector(v1);
 
    std::cout << "\nv2: ";
    printVector(v2);
}

二次

产出:

二次

代码语言:javascript
复制
v1: 1 2 3
v2: 7 8 9
-- SWAP
v1: 7 8 9
v2: 1 2 3

二次

代码语言:txt
复制
 © cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

扫码关注腾讯云开发者

领取腾讯云代金券