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
See also
TODO
This page was last modified on 2024-03-11