프로그래밍/Morden C++

std::advance

MAKGA 2021. 7. 13. 20:49
320x100

advance 함수는 주어진 iterator를 n개 이동해 모든 컨테이너를 배열처럼 접근할 수 있게 해준다.

return value는 없고 iterator 자체가 수정됨

#include <iostream>
#include <iterator>
#include <vector>
 
int main() 
{
	std::vector<int> v{ 3, 1, 4 };
 
	auto vi = v.begin();
	std::advance(vi, 2);
	std::cout << *vi << ' '; // 4 => begin() + 2
 
	vi = v.end();
	std::advance(vi, -2);
	std::cout << *vi << '\n'; // 1 => end() - 2
}

https://en.cppreference.com/w/cpp/iterator/advance

 

std::advance - cppreference.com

template< class InputIt, class Distance > void advance( InputIt& it, Distance n ); (until C++17) template< class InputIt, class Distance > constexpr void advance( InputIt& it, Distance n ); (since C++17) Increments given iterator it by n elements. If n is

en.cppreference.com

 

320x100

'프로그래밍 > Morden C++' 카테고리의 다른 글

std::clamp  (0) 2021.09.29
std::accumulate  (0) 2021.09.22
[C++17] std::optional  (0) 2021.07.17
std::splice  (0) 2021.07.13
자주 쓰이는 vector 사용 패턴  (0) 2021.07.11