《c++primer 》string *pstr = new string; *pstr = str;的疑问

来源:互联网 发布:python macd指标 宽距 编辑:程序博客网 时间:2024/06/16 21:05
题目:编写程序定义一个 vector 对象,其每个元素都是指向 string 类型的指针,读取该 vector 对象,输出每个 string 的内容及其相应的长度。

疑问出在string *pstr = new string; *pstr = str;看了很多解答,汇总一下。

#include<iostream>#include<string>#include<vector>using std::cin;using std::cout;using std::endl;using std::vector;using std::string;int main(){typedef string *pstring;vector<pstring> stringPointArray;string sTemp;int iCount = 3;while (iCount!=0){cout << "input" << endl;cin >> sTemp;--iCount;pstring sPointTemp=new string;//sPointTemp = &sTemp;//和上一句连一起,就把指针自己分配的空间弄丢了,同时指向了stemp的地址//pstring sPointTemp = &sTemp;//在这里sPointTemp是一个指针,获取的是地址,指向stemp*sPointTemp=sTemp;//把stemp复制进sPointTemp的空间中cout << "指针地址"<<sPointTemp << endl;cout << "指针指向的string"<<*sPointTemp << endl;stringPointArray.push_back(sPointTemp);}vector<pstring>::iterator i = stringPointArray.begin();for (; i != stringPointArray.end(); ++i){cout << **i << endl;delete *i;}system("pause");return 0;}

0 0
原创粉丝点击