- 博客(4)
- 收藏
- 关注
原创 C++ STL 容器vector添加元素函数emplace_back()和push_back()的使用差异及比较
1、vector容器的特点vector底层数据结构是一个动态数组,就是在实例化一个vector对象时,如果不手动对其容量进行设置的话,vector的默认容量为0,即capacity()返回值为0。随着向容器中添加元素,容器对象按照1 2 4 8 16 32 二倍扩容。GCC是按照二倍扩容,VS13是1.5倍扩容。扩容后是一段新的内存空间,此时就需要将旧的内存空间里的所有元素拷贝到新的内存空间中去(如果元素为一个类的对象的话,此时会触发拷贝构造函数),然后再在新的内存空间中的原数据元素后面继续插入新的元
2021-07-02 16:44:03 629
原创 二维STL容器如何进行初始化
二维STL容器如何进行初始化@TOC二维STL容器如何进行初始化1、第一种直接申明vector<vector<char> >vec(row, vector<char>(col, '#'));其中row 和col分别表示二维vector的两个轴向的大小。2、首先初始化行向的大小、在初始化列向的大小。vector<vector<char> >vec1;vec1.resize(row);for(int i=0;i<vec1.si
2021-07-01 18:53:18 300
原创 C++动态规划求解砝码称重问题(双向的,包括减法情况)
1、定义 先来读一读题目,题目如下:**现有一组砝码,重量互不相等,分别为m1、m2……mn;他们可取的最大数量分别为x1、x2……xn。现在要用这些砝码去称物体的重量,问能称出多少种不同的重量。看完这个题目感觉似乎无从下手,难道要一个个的枚举拼凑吗?答案是否定的。不绕弯子了,下面直接进入动态规划的主场。设想第0种情况,假如现在只有0个砝码,问它能称出的重量有几种?是个人都知道只能称0的重量,并且只有这么1种情况。设想第1种情况,现在只有1种规格的砝码,它的重量是1,数量是1个,问它能称出的重量
2021-04-19 21:21:15 930 1
原创 C++中用new给二维数组分配内存的使用方法
C++中用new给二维数组分配内存的使用方法一、原理首先要分开分配内存,如果还是用原来的一维数组的动态分配就不行了,比如 int** ptr = new int* [10 * 10]; /这句是指分配了100个int指针,并不是一1010的2维数组。*/二、使用步骤1.先创建一个10个int型指针数组int **ptr = new int *[10]; //指针的数组2.在分别给每个指针的头指针分配内存for(int i=0;i<10;i++){ ptr[i]=new int[
2021-04-14 16:36:58 1560
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人