码迷,mamicode.com
首页 > 编程语言 > 详细

C++/STL中 vector中对 “=”赋值运算符的支持

时间:2015-08-14 17:12:41      阅读:384      评论:0      收藏:0      [点我收藏+]

标签:c++   stl   

由于好奇STL中的vector 对于自定义数据类型的 “ = ”(赋值运算符的)支持,谢了一段简单的测试代码进行测试。

结果证明vector对于赋值预算符支持良好,但是对于动态分配的类构成的vector数组,

博主认为一定要重写析构函数与复制构造函数以及运算符重载“=”运算符(这是一条软件规则,详见博主测试),链接如下:


http://blog.csdn.net/u010003835/article/details/47314811


测试代码:

#include <iostream>
#include <vector>

using namespace std;


#pragma warning(disable:4996)

struct Point{
	int x;
	int y;
};


void  Print(vector<Point> &PointList){
	for (int i = 0; i < PointList.size(); i++){
		cout << PointList[i].x <<" "<< PointList[i].y << endl;
	}
	cout << endl << endl;
}

int main(){
	vector<Point> PointList1;
	vector<Point> PointList2;

	Point a;
	a.x = 1;
	a.y = 2;
	PointList1.push_back(a);


	a.x = 3;
	a.y = 2;
	PointList1.push_back(a);


	a.x = 4;
	a.y = 2;
	PointList1.push_back(a);

	Print(PointList1);

	cout << "test of  = operator (whole vector copy)" << endl;
	PointList2 = PointList1;
	Print(PointList2);

	cout << "test of = operator (part of the vector)" << endl;
	PointList2[1] = PointList1[2];
	PointList2[0] = PointList1[2];
	Print(PointList2);


	return 0;
}


技术分享

版权声明:本文为博主原创文章,未经博主允许不得转载。

C++/STL中 vector中对 “=”赋值运算符的支持

标签:c++   stl   

原文地址:http://blog.csdn.net/u010003835/article/details/47663143

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!