c++ vector的一个问题:
#include <vector>
#include <iostream>
using namespace std;
struct AAA{
int i;
AAA(int ii) :i(ii){
cout<< "init AAA "<<i<< endl;
}
~AAA(){
cout<< "del AAA "<<i<<endl;
}
};
int main(){
vector<AAA> vaaa;
for(int i=0; i< 2; i++){
cout<< "push to vector "<<i<<endl;
vaaa.push_back(AAA(i));
}
cout << "erase 0 .........\n";
vaaa.erase(vaaa.begin());
cout<< "exit main\n";
return 0;
}
输出如下:
push to vector 0
init AAA 0
del AAA 0
push to vector 1
init AAA 1
del AAA 0
del AAA 1
erase 0 .........
del AAA 1
exit main
del AAA 1
不知道为什么“erase 0”后面会有2个"del AAA ?" 。按理说临时对象AAA0已经被清除了啊。
求指点!
...全文


