|
흠.. 제가 좀 무식했네요...
아래와 같이 처리를 해야 되는군요.. 그럼... ^^;;;
vTimeTable.insert(vTimeTable.begin()+i, Time);
vTimeTable.erase(vTimeTable.begin()+i);
smleelms 님이 쓰신 글 :
: #include <vector>
:
: using namespace std;
: vector<int> vTimeTable;
:
: vTimeTable.push_back(0);
: vTimeTable.push_back(1);
: vTimeTable.push_back(2);
: vTimeTable.push_back(3);
: vTimeTable.push_back(4);
:
: 위의 예처럼 vTimeTable을 선언 및 초기화한 후에 사용할려고 합니다.
: 그런데, 이때 push_back(), size() 와 같은 method는 에러가 나지 않습니다.
: 그런데, insert 및 erase method는 아래처럼 에러가 납니다.
:
: vTimeTable.insert(i, Time);
: vTimeTable.erase(i);
:
: [C++ Error] frmProfileOne.cpp(382): E2285 Could not find a match for 'vector<int,allocator<int> >::insert(int,int)'
: [C++ Error] frmProfileOne.cpp(405): E2285 Could not find a match for 'vector<int,allocator<int> >::erase(int)'
:
: IDE상에서 insert 함수의 원형은 다음처럼 나옵니다.
: Function int * vector<int, allocator<int> >::insert(int *, const int&)
:
: 왜 저런 에러가 발생할까요 ?....
:
: 그래서 vTimeTable.erase(vTimeTalbe.end()) 처럼 테스트를 해보면, 컴파일은 됩니다.
: 그런데, erase 함수실행시에 바이올레이션 에러가 납니다.
:
: 몇가지 추가적인 컴퍼넌트를 사용한게 있지만, 그때문인지 왜 저 함수가 에러가 나는지 모르겠습니다.
: 조언을 부탁드립니다.
:
:
:
|