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;
}