요 몇년동안 윈도우 CE기반 MFC를 사용했다.
하지만 앞으로는 Window가 아닌 플렛폼에서도 개발을 해야 될꺼 같다.
물론 아직은 C++이 아닌 언어는 본격적으로 할 생각이 없기 때문에.
그런고로 이제는 MFC에서 쉽게 사용하던 CArray, CList와 같은 클래스를 사용할수 없다 생각하고.
STL을 사용하여 코딩을 하려한다.
그런고로 자문자답.
>> 문제
양수 n를 입력받으면 vector에 n을 기록한다.
음수 n를 입력받으면 현재 데이터의 abs(n)의 값을 삭제한다.
0을 입력받으면 프로그램을 종료한다.
#include <iostream> #include <vector> #include <algorithm> using namespace std; void main(void) { vector<int> data; while( true ) { int temp; cin >> temp; if ( temp > 0 ) { // 양수일 경우 vector의 맨 마지막에 데이터 추가. data.push_back(temp); } else if ( temp < 0 ) { vector<int>::iterator it; // 반복자 생성. // <algorithm>에 있는 find()를 이용해 abs(음수)의 위치를 찾는다. it = find(data.begin(), data.end(), abs(temp)); // 원하는 데이터가 vector에 없을 경우를 위한 예외처리. if( it != data.end()) data.erase(it); // 데이터 삭제. } else { // 0을 입력하면, 프로그램 종료. break; } { // 데이터 확인을 위한 출력 형식. cout << "\n<data check="">\n"; for(int i = 0; i < (int)data.size(); i++) cout << data[i] << "\n"; cout << "=-=-=-=-=\n"; } } }
실행 테스트
처음에는 find() 이후 예외처리를 하지않아 항상 오류가 발생되었다.
'C++ in Windows > STL' 카테고리의 다른 글
set 실습 2 (0) | 2012.07.09 |
---|---|
set 실습 (2) | 2012.07.09 |