首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

vector 操作迷惑,求解答

2012-10-25 
vector 操作疑惑,求解答!本人纯新手,勿笑勿骂!自己在VS2008下调试以下小程序时,未得到预期输出:hellohello

vector 操作疑惑,求解答!
本人纯新手,勿笑勿骂!

自己在VS2008下调试以下小程序时,未得到预期输出:hellohello. (当前小vector内的值)
当前仍输出:hihi.(原先小vector中的值).
求解惑,谢谢!

程序如下:

C/C++ code
#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;}


[解决办法]
C/C++ code
    for(int i=0;i!=10;++i)     big[0][i]=s; //修改small,不会影响big
[解决办法]
for(int i=0;i!=10;++i) 
big[0][i]=s;
[解决办法]
探讨
引用:

C/C++ code

for(int i=0;i!=10;++i) 
big[0][i]=s; //修改small,不会影响big

谢谢回复, 我试过类似您这样的代码,结果没有修改small中的值,small[0]等仍是初始值:字符串"hi"

[解决办法]
这样算么?
C/C++ code
#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;} 

热点排行