题目:编写程序定义一个 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;
}