设为首页 加入收藏

TOP

关于c++中与的容器(运算符的重载)实例讲解
2018-05-21 15:48:12 】 浏览:127
Tags:关于 容器 运算 符的 重载 实例 讲解

关于c++中与的容器(运算符的重载)实例讲解

/*
运算符的重载
C++16次课   容器    stack  queue

vector容器的特征  =》   向量容器(底层是数组结构)
1.默认构造的vector,底层没分配过内存 0
2.vector添加元素,满了以后,内存以2倍方式增长
*/
template
  
   
class Vector
{
public:
	//默认构造的vector,底层没分配过内存0
	Vector();
	//size表示初始的内存大小,val表示内存初始值
	Vector(int size, const T &val = T());
	//拷贝构造
	Vector(const Vector
   
     &src); //operator= Vector
    
     & operator=(const Vector
     
       &src); ~Vector(); //末尾添加元素 void push_back(const T &val); //末尾删除 void pop_back(); T front()const; T back()const; //内存以2倍方式增长 void reSize(); private: T *mpVec; int mSize; int mCur; }; 
     
    
   
  

讲讲基础的迭代器

每周五的晚上都是精神高度紧张的晚上,c++这东西真的不太好学。也不知道学了有没有用。

在栈上构造了3个对象。

默认构造。

new分配内存---->构造对象

new默认会调用构造函数。

想要的是内存,不想要对象的产生构造容器时,只想要内存,不想要对象的产生,但new会默认调用一堆的没用对象。

第一次增长带来的无用对象。

开辟空间是重新开辟空间,不是在原来的上覆盖上。

从容器删除对象时,并没有真正的析构对象。

希望把内存开辟跟对象的构造分开(容器),new构造那么多无用对象。内存开辟,malloc只会开辟内存,不会构造对象?

如何在分配好的内存上构造对象。

new有4种方式。

int ?*p=new int;=>异常抛出bad_alloc

int *p=new (nothrow) int;不抛出异常bad_alloc

int *p

\

delete会删除对象并析构会把内存空间也释放掉,不希望这样

对象析构~T();

容器最后会统一析构。

内存泄漏很严重的事情。

拷贝构造函数,

容器的空间配置器、迭代器。

空间配置器,把**分开。对象的构造、析构,内存开辟、释放

系统提供了默认的空间配置器。

\

\

内存开辟、释放,对象构造析构都交由空间配置器完成。避免无用对象的构造。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C++ Primer Plus复习题及答案 下一篇C++学习之线程的概念、创建以及使..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目