@specsoftdev live:.cid.8e17e9b93cabb607 specsoftdev@gmail.com
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
TODO
C++23
TODO
C++20
TODO
C++17
TODO
C++14
TODO
C++11
TODO


See also

TODO

This page was last modified on 2024-03-11