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

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

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_14884161/article/details/51539340
个人分类: C++
想对作者说点什么? 我来说一句

Delphi读取文件和写入文件总结

2012年03月28日 10KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭