std::iter_swap
Актуально для C++23.
#include <algorithm>
Актуально на 2024-03-11.
Define overload #1
template<class ForwardIt1, class ForwardIt2> void iter_swap(ForwardIt1 a, ForwardIt2 b);
Осуществляет обмен элементов на которые указывают итераторы.
Example, possible implementation
Examples
Example 1:
#include <iostream> #include <algorithm> #include <vector> int main() { std::vector<std::string> vec = {std::string(20, 'a'), std::string(20, 'b'), }; auto first = std::begin(vec); auto second = first + 1; std::cout << "До обмена: " << '\n' << "addressof " << vec[0] << ": " << (std::ptrdiff_t) vec[0].c_str() << '\n' << "addressof " << vec[1] << ": " << (std::ptrdiff_t) vec[1].c_str() << '\n' << '\n'; std::iter_swap(first, second); std::cout << "После обмена: " << '\n' << "addressof " << vec[0] << ": " << (std::ptrdiff_t) vec[0].c_str() << '\n' << "addressof " << vec[1] << ": " << (std::ptrdiff_t) vec[1].c_str() << '\n'; return 0; }
До обмена: addressof aaaaaaaaaaaaaaaaaaaa: 94309578383168 addressof bbbbbbbbbbbbbbbbbbbb: 94309578383200 После обмена: addressof bbbbbbbbbbbbbbbbbbbb: 94309578383200 addressof aaaaaaaaaaaaaaaaaaaa: 94309578383168
Changelog
C++26
TODOC++23
TODOC++20
TODOC++17
TODOC++14
TODOC++11
TODOSee also
TODO
This page was last modified on 2024-03-11