vector<class A> 与 vector<class *A>

原创 2012年03月21日 22:53:12
vector<class A> 与 vector<class *A>
“动态加入”的代码有问题,最好不要用。
其一,vector<A*>中存的是指针,如果class A有析构函数,copy,move,delete都会出问题。
其二,new A()返回的是一个指针,不需要使用&运算符。

vector<A> v3;
v3.push_back(A());
没有问题,使用的是stack,不是heap。v3中存的是一个副本。具体过程:
1. 创建一个临时的A对象
2. 如果v3有足够的空间,将A对象复制到v3对应的空间(使用赋值函数assignment function);
   如果v3没有足够的空间,先扩容,再创建一个A对象(使用拷贝函数copy constructor)。
3. 然后,临时的A被销毁

相关文章推荐

c++中vector的用法详解

vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的.      用法:...

C++ 中vector的使用方法

C++ 中vector的使用方法(纯干货!)

One Class SVM, SVDD(Support Vector Domain Description)

今天给大家介绍一下one class classification以及用SVDD()

利用vector与class完成的链表排序操作demo

//ListClass.h#pragma onceclass ListClass{public: ListClass(void); ListClass(int var,string name); vi...

从零开始学C++之对象语义与值语义、资源管理(RAII、资源所有权)、模拟实现auto_ptr<class>、实现Ptr_vector

一、对象语义与值语义 1、值语义是指对象的拷贝与原对象无关。拷贝之后就与原对象脱离关系,彼此独立互不影响。比如说int,C++中的内置类型都是值语义,前面学过的三个标准库类型string,vector...

Unsupervised and Semi-supervised Multi-class Support Vector Machines

A new unsupervised and semi-supervised training algorithms for multi-class support vector machines b...

Vector:不定长数组基础用法

好久没写了呢,MarkDown的用法都忘得七七八八了。 今天在看网络流的问题,挑战上的算法设计vector ,之前就没看懂,这次稍微统计一下用法,一些基础方法什么的vector在c++中,vecto...
  • FRRE_Y
  • FRRE_Y
  • 2017年01月08日 15:06
  • 86
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:vector<class A> 与 vector<class *A>
举报原因:
原因补充:

(最多只允许输入30个字)