vector::resize
来源:互联网 发布:网络被骗2000报警么 编辑:程序博客网 时间:2024/06/03 23:27
今天遇到一个和resize相关的问题,于是就测试了一下~~
代码如下:
#include <iostream>#include <cstdlib>#include <windows.h>#include <vector>struct Fuck{ Fuck() { std::cout << "调用构造函数" << std::endl; ZeroMemory(this , sizeof(*this)); } Fuck( const Fuck & rhs) { std::cout << "卧槽,竟然调用了拷贝构造函数" << std::endl; } ~Fuck() { std::cout << "调用析构函数" << std::endl; } int i; float a; double b; char c[2];};int main(void){ { std::vector<Fuck> vec(4); std::cout << "see here" << std::endl; vec.resize(7); std::cout << "hey , here" << std::endl; } system("pause"); return 0;}
程序的运行结果如下:
由图中我们可以知道:
执行
std::vector<Fuck> vec(4);
这一句将会调用默认构造函数,因为size是4,所以调用4次
然后:
vec.resize(7);
这一句由于新的size大于原来的size,于是先使用原来的四个元素通过拷贝构造函数构造四个新的元素,然后将原本的四个元素释放,再调用默认构造函数生成三个元素
0 0
- vector.resize
- vector::resize
- vector--resize
- vector::resize()
- vector--resize()
- vector::reserve && vector::resize
- Vector::reserve与Vector::resize
- c++ vector resize & reserve
- vector之resize、fill
- vector resize & reserve
- c++ vector resize & reserve
- vector resize reserve区别
- stl vector resize reserve
- C++ vector::resize
- c++ vector resize & reserve
- vector resize和reserve区别
- vector的reserve和resize
- vector的reserve和resize
- 2. linux文件的分类与目录的分类
- 五大常用算法之二:动态规划算法
- Java如何传参数到main中
- pring事务管理(注解式声明事务管理)
- R语言基础编程技巧汇编 - 23
- vector::resize
- eclipse 插件安装
- Apache与Nginx网络模型
- typedef和#define的用法与区别
- Skitter jQuery 插件
- 五大常用算法之一:分治算法
- 树 Symmetric Tree
- 细说 Form (表单)
- Rotate List