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被销毁

简单的vector实现

学习c++中,看完书后,最近苦于不知道下一步该怎么办了,就翻翻STL源码剖析中的各种容器,想重新实现一遍。很多问题之前看的时候还不知道是怎么回事,当自己写的时候才发现许多应该注意与理解的。这个vect...
  • u012637838
  • u012637838
  • 2014年11月01日 16:40
  • 784

几种vector的初始化方法

题目: 1005. 最大和 时间限制:1秒    内存限制:256兆 题目描述 从数列A[0], A[1], A[2], ..., A[N-...
  • N1neDing
  • N1neDing
  • 2017年06月24日 17:16
  • 332

C++中Vector类的使用

讲述了C++中的Vector的本质,使用方法等。
  • MyLinChi
  • MyLinChi
  • 2016年08月14日 09:31
  • 1923

vector中存放自定义类 ,对类的要求

vector中存放自定义类的前提是: 自定义的类必须有默认构造函数。因为vector会调用默认构造函数来初始化元素的对象。 那必须要明确:编译器什么时候隐式声明默认构造函数? 有两个条件: ·...
  • lujiandong1
  • lujiandong1
  • 2015年11月16日 22:04
  • 3385

C++ 全局变量和局部变量

一:为什么静态成员变量要通过类外初始化赋值? 当将类的某个数据成员声明为static时,该静态数据成员只能被定义一次,而且要被同类的所有对象共享。各个对象都拥有类中每一个普通数据成员的副本,但静...
  • u012723995
  • u012723995
  • 2015年08月01日 11:26
  • 2026

算法分析与设计丨第十一周丨Sicily(15)—— 1003. 最近的0(Hard)

题目描述: 输入一个N*M的01矩阵A,对矩阵的每个位置,求至少经过多少步可以到达一个0. 每一步可以往上下左右走一格.   请为下面的Solution类实现解决这一问题的函数nearest...
  • xxhi008
  • xxhi008
  • 2017年11月19日 16:16
  • 98

STL之二:vector容器用法详解

vector类称作向量类,它实现了动态数组,用于元素数量变化的对象数组。像数组一样,vector类也用从0开始的下标表示元素的位置;但和数组不同的是,当vector对象创建后,数组的元素个数会随着ve...
  • longshengguoji
  • longshengguoji
  • 2013年01月15日 23:16
  • 42649

vector 比数组 的存取速度慢的不是一个数量级啊

https://oj.leetcode.com/problems/longest-palindromic-substring/ 这个leetcode得出的,可能是这个原因...
  • wangqing008
  • wangqing008
  • 2014年09月20日 11:11
  • 1941

vector内存机制和性能分析

一些好的公司校园招聘过程中(包括笔试、面试环节),经常会涉及到STL中vector的使用(主要是笔试)及其性能(面试)的分析。今天看了下相关文章,也写了几个小的测试程序跑了跑。算是总结下,希望对需要的...
  • mfcing
  • mfcing
  • 2013年04月01日 17:14
  • 20468

vector的用法小结

#include #include using namespace std; int main() { vector ivec{1,2,3,4,5,6,7,8,9,10}; //...
  • wsyxhwj
  • wsyxhwj
  • 2016年05月20日 20:38
  • 1035
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:vector<class A> 与 vector<class *A>
举报原因:
原因补充:

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