2020 카카오 인턴십 문제를 풀다가 vector 요소 삭제때문에 많은 시간을 허비했던지라..ㅠㅠ
다시 실수하지 말자 겸 기록한다
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> basket;
//1~20까지 basket에 넣음
for(int i = 1; i <= 20; i++) {
basket.push_back(i);
}
//print
for(vector<int>::iterator it = basket.begin(); it != basket.end(); it++) {
cout << *it << " ";
}
cout << endl;
//홀수일 경우 삭제
for(vector<int>::iterator it = basket.begin(); it != basket.end();) {
//iterator는 원소값을 가리키는 포인터
if(*it % 2 == 1) {
//원소를 지울 경우 다음 원소를 가리키게 됨
it = basket.erase(it);
}
else {
//지우지 않을 경우 다음 포인터로
it++;
}
}
//print
for(vector<int>::iterator it = basket.begin(); it != basket.end(); it++) {
cout << *it << " ";
}
}
결과
- 1~20까지의 숫자들 중에서 홀수들이 모두 삭제되어 올바르게 출력됨
'C++' 카테고리의 다른 글
VSCode 파일 소스을(를) 열 수 없습니다. (2) | 2020.05.28 |
---|---|
Visual Code 환경 설정 (0) | 2020.05.21 |