'helper'함수에서 set 요소가 출력되면 '2'요소가 제거 된 것으로 예상됩니다. 그러나 실제 결과는 여전히 '1 2 3 4 5'입니다.
그러나 세트의 크기는 4입니다.
근본적인 문제가 궁금합니다. helper
에함수의 C++ erase()
#include <iostream>
#include <set>
using namespace std;
void helper(set<int> myset, set<int>::iterator it) {
myset.erase(it);
cout << "size:" << myset.size() << endl;
for(auto el : myset)
cout << el << " ";
}
int main(int argc, const char * argv[]) {
set<int> myset = {1,2,3,4,5};
auto it = myset.begin();
it++;
helper(myset,it);
}
'void 헬퍼 (set myset'는 복사본을 전달합니다.) 반복자는 원본과 만 연결됩니다. –
StoryTeller