STL中vector容器中元素为自定义类型时的效率分析

本文分析了在STL vector中存储自定义类型元素时,如何涉及拷贝构造函数以确保效率和资源管理的正确性。讨论了拷贝构造函数在对象拷贝、传递和返回时的作用,以及在vector内存分配策略中的影响。
摘要由CSDN通过智能技术生成

相关背景知识:
构造函数:类的特殊成员函数,当创建类对象的时候,系统自动调用构造函数,用于完成一些初始工作。特点:构造函数名与类名相同、没有返回值,返回void也不行,但可以无值返回、可以不定义构造函数,编译器为类生产一个默认的构造函数,称为合成的默认构造函数,它会初始化类中的成员。构造函数可以带0到多个参数,可以重载;
析构函数:类的特殊成员函数,当销毁对象时,系统自动调用析构函数,一般用于完成清理工作。特点:系统函数名为类名前加~、不能有返回值、不能有参数、不能重载,可以不定义析构函数,编译器为我们生成一个合成的析构函数,它会按照初始化的逆序析构成员对象,但不会销毁指针所指的对象

拷贝构造函数:类的特殊成员函数,它的参数为该类的常量引用型,在对象拷贝时调用拷贝构造函数,对象拷贝不会调用构造函数,但是销毁时却会调用析构函数,所以需要定义拷贝构造函数,否则在有资源申请和释放的类中会出现问题。产生拷贝的情况:对象定义时用另一个对象的值初始化该对象、对象作为函数的参数按值传递、对象作为函数的返回值按值返回。

关于vector内存的分配,参考上一篇文章:STL中vector内存分配策略剖析

实验代码如下:
#include <vector>
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值