c++中的容器__2018.05.18

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

vector容器的特征  =》   向量容器(底层是数组结构)
1.默认构造的vector,底层没分配过内存 0
2.vector添加元素,满了以后,内存以2倍方式增长
*/
template<typename T>
class Vector
{
public:
	//默认构造的vector,底层没分配过内存0
	Vector();
	//size表示初始的内存大小,val表示内存初始值
	Vector(int size, const T &val = T());
	//拷贝构造
	Vector(const Vector<T> &src);
	//operator=
	Vector<T>& operator=(const Vector<T> &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();

容器最后会统一析构。

内存泄漏很严重的事情。

拷贝构造函数,

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

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

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



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

### 回答1: boost_1_78_0.tar.gz 是一个软件包文件,是Boost C++库的源代码压缩文件。 Boost是一个开源的C++库集合,提供了很多功能强大的工具和类,可以帮助开发者更高效地编写C++代码。Boost库在C++标准库的基础上进行了扩展,包括了许多常用的功能,比如线程、文件系统、数学计算、网络通信等等。使用Boost可以提高开发效率,加速开发进程。 boost_1_78_0.tar.gz 文件是一个经过压缩的文件,包含了Boost C++库的源代码。.tar.gz 是一种常见的文件压缩格式,可以通过解压软件解压缩得到源代码文件。 要使用 boost_1_78_0.tar.gz 文件,可以按照以下步骤进行操作: 1. 首先,需要一个解压缩软件,比如WinRAR、7-Zip等等。在电脑上安装好解压缩软件。 2. 找到 boost_1_78_0.tar.gz 文件所在的位置,可以是下载目录或者其他自己指定的位置。 3. 使用解压缩软件打开 boost_1_78_0.tar.gz 文件,选择解压缩的目标位置,点击解压缩按钮。 4. 等待解压缩完成,解压缩软件会自动将压缩文件解压缩为对应的文件夹,文件夹包含了Boost库的源代码。 5. 打开解压后的文件夹,可以看到 Boost C++库的源代码文件。可以根据自己的需求,将相关代码文件拷贝到自己的项目使用。 总之,boost_1_78_0.tar.gz 是Boost C++库的源代码压缩文件,通过解压缩可以获取Boost库的源代码,方便实现C++开发的各种功能。 ### 回答2: boost_1_78_0.tar.gz是Boost库的一个压缩文件。Boost是一个开源的C++库集合,它提供了许多功能强大且高效的工具和组件,可以帮助开发者更快速、更高效地编写C++代码。 boost_1_78_0.tar.gz是一个压缩文件,通常用于在Linux操作系统上进行下载和安装。它包含了Boost库的源代码和相关文件。解压缩后,可以通过编译这些源代码来得到Boost库的可执行文件。安装Boost库后,开发者可以在自己的C++项目使用Boost库提供的各种功能,比如字符串处理、数学计算、线程管理等等。 要使用boost_1_78_0.tar.gz,首先需要下载该文件并解压缩。在Linux系统,可以使用命令行工具tar进行解压缩,例如执行以下命令: tar -zxvf boost_1_78_0.tar.gz 解压缩完成后,进入解压后的目录,可以看到Boost源代码的文件结构。接下来,可以使用相应的编译工具(如g++、clang++等)对Boost源代码进行编译。编译完成后,可以将生成的库文件链接到自己的C++项目。 总之,boost_1_78_0.tar.gz是Boost库的一个版本压缩文件,通过下载、解压缩和编译,可以将Boost库集成到自己的C++项目,提供丰富的功能支持。 ### 回答3: boost_1_78_0.tar.gz是Boost C++库的一个压缩文件。Boost是一个开源的C++库集合,提供了许多功能强大且可扩展的库,用于增强C++编程的效率和能力。 这个压缩文件包含了Boost库的源代码和相关文档。通过下载和解压缩这个文件,我们可以获得所有Boost库的源代码,并可以根据自己的需求进行编译和使用。 Boost库包含了许多不同的模块,如文件系统、日期时间、正则表达式、容器、算法等等,每个模块都提供了丰富的功能和易于使用的API。使用Boost库可以帮助我们更高效地开发C++应用程序,简化一些常见任务的实现,并提供了许多可靠的工具和解决方案。 boost_1_78_0.tar.gz的tar.gz是一种常见的文件压缩格式,需要使用相应的解压工具进行解压缩。解压缩后,我们可以在目录找到Boost库的源代码文件夹,其包含了许多子文件夹和文件。通过编译这些源代码,我们可以得到所需的Boost库文件,然后可以将其链接到我们的项目进行使用。 总而言之,boost_1_78_0.tar.gz是Boost C++库的一个压缩文件,包含了Boost库的源代码和相关文档。通过下载和解压缩这个文件,我们可以获取Boost库,并利用它的功能来提升我们的C++编程效率和能力。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值