최대 1 분 소요

개요

  • 복사가 아닌 이동되는 반복자
  • make_move_iterator 함수를 이용하여 생성


예제

  • 코드
    #include <iostream>
    #include <string>
    #include <vector>

    using namespace std;

    int main() {
    	auto print = [](const vector<string> &v) {
    		for (const auto &iter : v) {
    			cout << iter << " ";
    		}
    		cout << endl;
    	};

    	vector<string> v1{"a", "b", "c"};

    	vector<string> v2(v1.begin(), v1.end());
    	print(v2);
    	print(v1);

    	cout << "------" << endl;

    	vector<string> v3(make_move_iterator(v1.begin()),
    					  make_move_iterator(v1.end()));
    	print(v3);
    	print(v1);
    	cout << v1.size() << endl;

    	return 0;
    }
  • 실행 결과
    a b c
    a b c
    ------
    a b c

    3