读书人

vector 是 引用地址的?解决办法

发布时间: 2012-04-18 15:01:59 作者: rapoo

vector 是 引用地址的?
vector <char*> v;
char a[]= "111\n ";
char b[]= "222\n ";

int main(int argc, char* argv[]) {

v.push_back(a);
v.push_back(b);

memcpy(a,b,strlen(a));
for(i=0;i <v.size();i++){
printf(v.at(i));
}
return 0;
}

经过一个memcpy之后,输出为
222
222

我想要得到的是
111
222
请问有什么办法能解决这个问题?或者有没有类似的类库可以用?

[解决办法]
不要用vector <char*> ,用vector <string> 。
[解决办法]
#include <iostream>
#include <string>
#include <vector>

vector <char*> v;
char a[]= "111\n ";
char b[]= "222\n ";

int main()
{
string a = "111 ";
string b = "222 ";

vector <string> v;

v.push_back(a);
v.push_back(b);

for(int i=0; i <v.size(); i++)
{
cout < < v[i];
}

return 0;
}

读书人网 >C++

热点推荐