vector 操作疑惑,求解答!
本人纯新手,勿笑勿骂!
自己在VS2008下调试以下小程序时,未得到预期输出:hellohello. (当前小vector内的值)
当前仍输出:hihi.(原先小vector中的值).
求解惑,谢谢!
程序如下:
#include <iostream>#include <vector>#include <string>using namespace std;int main(){ string s("hello"); vector<vector<string> > big; vector<string> small(10,"hi"); big.push_back(small); for(int i=0;i!=10;++i) small[i]=s; vector<vector<string> >::const_iterator ii = big.begin(); //for (vector<string>::iterator it = small.begin(); it!=small.end(); ++it) //cout << *it << "\t"; std::cout << big[0][1] <<(*ii)[0] << std::endl; return 0;}for(int i=0;i!=10;++i) big[0][i]=s; //修改small,不会影响big
[解决办法]
for(int i=0;i!=10;++i)
big[0][i]=s;
[解决办法]
#include <iostream>#include <vector>#include <string>using namespace std;int main(){ string s("hello"); vector<vector<string> > big; vector<string> small(10,"hi"); big.push_back(small); for(int i=0;i!=10;++i) { small[i]=s; big[0][i] =s; } vector<vector<string> >::const_iterator ii = big.begin(); std::cout << big[0][1] <<(*ii)[0] << std::endl; return 0;}