constexprvoidswap(array<T,N>&lhs, array<T,N>&rhs)noexcept(/* see below */); (C++20 起) 为std::array特化std::swap算法。交换lhs与rhs的内容。调用lhs.swap(rhs)。 此重载仅若N == 0或std::is_swappable<T>::value为true才参与重载决议。
注意: std::array容器的swap不是交换指针,而是直接把内容交换了!该方法以其他数组为参数,通过对数组的单个元素进行交换操作,以线性方式交换两个数组的内容。
具体用法示例如下:std::array<int, 3> arr = {1, 2, 3};arr.fill(1); // arr = {1, 1, 1}swapswap函数的主要作用是交换两个array容器的内容,其与deque的swap不同的是不导致迭代器和引用关联到别的容器。其函数声明如下:voidswap( array& other )noexcept(); //C++11 起, C++20 前constexpr...
std::swap(std::array) (C++11) 特化std::swap算法 (函数模板) to_array (C++20) 从内建数组创建std::array对象 (函数模板) 辅助类 std::tuple_size<std::array> 获得array的大小 (类模板特化) std::tuple_element<std::array> 获得array元素的类型 ...
swap: swaps the contents,交换两个数组内容,迭代器、引用各自保持不变。 //main.cc file #include <array> #include <iostream> int main() { std::array<int, 8> board; board.fill(25); // Assigns the value to all elements in the container. ...
std::swap(std::array)函数是为std::array特化std::swap 算法。其函数声明如下: template< class T, std::size_t N > void swap( std::array< T, N >& lhs, std::array< T, N >& rhs ); //C++11 起, C++17 前template< class T, std::size_t N > void swap( std::array< T, N ...
按照规则,指向array的迭代器在array的生存期间决不会失效。然而要注意,在swap时,迭代器将继续指向同一array的元素,并将改变元素的值。 模板形参 T-元素类型。必须为可移动构造(MoveConstructible)和可移动赋值(MoveAssignable)。 N-数组中的元素数量或0。
1.可以使用拷贝和赋值,只要保证类型一致即可; 2.使用swap函数,a.swap(b);或者swap(a,b);交换两者的元素 3.使用正向和反向迭代器 array是数组的升级版,将数组正式纳入到容器范畴。array在使用和性能上都要强于内置数组,对于一些固定大小的使用场景,可用array替代数组工作。
array::swap Non-member functions get(std::array) (C++11) swap(std::array) (C++11) to_array (C++20) operator==operator!=operator<operator>operator<=operator>=operator<=> (C++11)(C++11)(until C++20)(C++11)(until C++20)(C++11)(until C++20)(C++11)(until C++20)(C++11)(until C++20...
std::array::swap std::deque std::deque::assign std::deque::at std::deque::back std::deque::begin std::deque::cbegin std::deque::cend std::deque::clear std::deque::crbegin std::deque::crend std::deque::deque std::deque::emplace std::deque::emplace_back std::deque::emplace_fron...