自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Anthony_tester的博客

公众号:AnthonyTestDevHouse,探索从QA角色到开发角色的转换之路(Q群574103281)

  • 博客(14)
  • 收藏
  • 关注

原创 C++ deque容器-47-deque大小操作和插入和删除

继续学习双端数组deque的api,前面学习了deque的构造和赋值操作,还有始终一样的遍历容器代码操作。这里先学习deque大小操作,主要有判断容器是否为空,元素总数多少,还有修改容器大小操作。然后学习deque的插入和删除相关API1.deque的大小操作函数原型首先empty() 如为空返回1,如果不为空返回0#include <iostream>#include <string>#include <deque>using name.

2020-07-31 23:22:15 1208

原创 C++ deque容器-46-deque构造函数和赋值操作

前面学习了vector单端数组容器,既然有单端也就有双端。vector是限制在尾部新增和删除元素,实际上还有一种数据结构是两头都可以添加和删除元素,这里开始学习deque双端数组容器。1.deque和vector区别vector对于头部的插入删除效率低,数据量越大,效率越低。deque相对而言,对头部的插入删除速度会比vector快vector访问元素时的速度会比deque快,这和两者内部实现有关。上图中,中间这个多个方格就是双端数组,两头都有插入和删除方法,中间还有insert(.

2020-07-30 23:28:39 890 1

原创 C++ vector容器-45-vector互换和节省空间和预留空间

这篇来学习vector一个互换操作,也就是有两个vector对象,可以通过一个api,把两个对象互换过来。实际上,就是在内存中交换了对象的指针,原来的指针指向新的vector对象。这种交换有时候是很有必要,特别是匿名vector对象进行交换后可以节约内存空间,最后来看看vector的预留空间相关的知识点。1.两个vector互换互换的函数很简单swap(vect),当前容器和传进来的vect容器进行交换。下面代码先创建两个vector对象,然后进行打印交换前和交换后的容器元素。#incl.

2020-07-28 23:34:22 4037 1

原创 C++ vector容器-44-vector插入和删除以及存取

本篇继续学习vector容器,前面学习了vector是一个单端数组。也就是说vector的插入和删除,基本上都是在数组的末端进行。本篇要学习的vector插入和删除的方法就能体现这个特点,最后学习vector的存取操作1.vector的插入和删除在vector和插入、删除相关的方法主要有下面几个push_back(ele); // 尾部插入元素elepop_back(); // 删除最后.

2020-07-27 23:09:12 3114

原创 C++ vector容器-43-vector构造函数和赋值操作

在C++中常用的string的API都学习完了,这篇开始学习vector容器。vector有点类似数组,但是一个最懂扩容和支持尾部插入和删除的类似数组的容器。vector数据结构和数组非常相似,也称为单端数组,不同之处在于数组是静态空间,而vector可以动态扩容。数组一旦创建了,就不可以改变,所以叫静态。也就是不可以给数组扩容,只能新建一个更大容量的数组。动态扩容不是在原空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝新空间,释放原空间。1.vector构造函数构造函数原型:.

2020-07-26 23:09:47 6377

原创 C++ string容器-42-string比较存取和插入删除函数

继续学习string类中的API,先看看字符串比较,然后学习字符串存取,最后看看字符串中如何插入和删除字符的函数。1.字符串比较在C++中string中字符串比较是使用函数compare,比较两个str的ASCII码表顺序。把字符串切割成一个一个字符,两个字符串从左到右相同位置上字符,一个一个比较,大小关系是ASCII编码表对于int数字的大小。例如字母a要比字母b编码排前面,所以a对应数字比字母b要小。#include <iostream>#include <string

2020-07-26 18:15:17 765

原创 C++ string容器-41-string拼接和查找替换函数

本篇继续来学习string这个类,一个string容器,里面就是一些C语言 char * c风格的字符组成。这里来学习下字符串的拼接功能,还有字符串查找和替换方法。1.字符串拼接功能在string中字符串拼接功能有下面几个函数,主要是重载+=操作符合使用append函数,尾部追加的意思string& operator+=(const char* str); // 重载+=操作符string& operator+=(const char c); // 重载+=操作符

2020-07-24 23:13:59 1074

原创 C++ string容器-40-string构造函数和赋值函数

接着学习C++中的string容器。字符串操作在任何编程语言都很常见,每个语言都提供了一些常见的API,例如字符串查找,替换,删除等。这篇来学习字符串的构造函数和赋值操作。1.string的基本概念string是C++风格的字符串,而string本质上是一个类。string和har * 区别:char *是一个指针,string是一个类,类内部封装了char *,管理这个字符串,是一个char *形的容器。string类有这些特点,string类内部封装了很多成员方法,例如查找find, 拷贝co

2020-07-21 23:29:53 2842

原创 C++STL-39-标准模板库STL的一些概念和vector初识

这篇开始学习STL的一些基础概念,虽然概念很枯燥,不好理解,但是我们先要属性概念。有一些概念是其他编程语言学习过,比较好理解。有一些是不好理解。1.STL基本概念大多情况下,数据结构和算法都未能有一套标准,导致被迫从事大量重复工作。为了建立数据结构和算法的一套标准,诞生了STL。STL(Standard Template Library)标准模板库。从广义上分为,容器(container) 算法(algorithm) 迭代器(iterator)。容器和算法之间同迭代器进行无缝连接。STL几乎所.

2020-07-20 23:09:02 356

原创 C++模板-38-类模板练习-自定义数组类-剩余实现

上一篇介绍了利用模板类实现自定义数组类的一些方法,包括有参构造和拷贝构造和赋值=号函数,还有析构函数。这篇还继续实现后续需求。有尾部插入元素和尾部删除元素,还有根据索引获取元素,以及获取数组容量和获取数组元素大小的方法。1.剩余代码接着上一篇,在析构函数代码前面,写尾插法和尾删法,还有operator[]根据索引获取元素方法,以及上一篇定义了m_Capactiy和m_Size是私有成员变量,这里我们需要提供get方法让外部使用。#include <iostream>#inc.

2020-07-19 19:13:43 458

原创 C++模板-37-类模板练习-自定义数组类

到这里,模板相关基本学习完,现在来利用模板类写一个代码例子。这个例子就是自定义一个数组模板类,需要实现数组的一些常用操作。例如拷贝,有参构造,查找,删除等。1.自定义数组类需求模板案例描述:实现一个通用的数组类,要求如下1)可以对内置数据类型以及自定义数据类型的数据进行存储2)将数组中的数据存储到堆区3)构造函数中可以传入数组的容量4)提供对应得拷贝构造函数以及operator=防止浅拷贝问题5)提供尾插法和尾删法对数组中的数据进行增加和删除6)可以通过下标的方式访问数组中的元素.

2020-07-18 23:38:22 1668

原创 C++模板-36-类模板和继承和友元

这里来学习下类模板作为父类,那么子类继承父类是有问题,这种问题是什么,如何解决。然后看看类模板配合友元函数的类内实现和类外实现。1.类模板和继承如果父类是一个模板类,子类继承的时候会有下面几个点需要注意当子类继承的父类是一个类模板时,子类在声明的时候,要指定出父类中T的类型 如果不指定,编译器无法给与子类分配内存 如果想灵活指定出父类中T的类型,子类也需要为类模板先用代码演示1,2点,如果不指定父类T的类型,这个编译错误是什么#include <iostream>.

2020-07-14 23:38:15 488

原创 C++模板-35-类模板对象做函数参数的三种情况

接着来学习类模板作为函数参数传入是如何使用,如果需要把类模板作为参数一起传入到函数中,一般有三种情况,下面分别用代码来解释这三种情况。1.指定传入类型就是在参数中,就指定类型,而不是<class T1, class T2>, 而是直接指定确定类型,例如<string, int>。看下面代码,在printPerson1()就是参数指定特定类型#include <iostream>#include <string>using namespa.

2020-07-12 23:13:53 2993 1

原创 C++模板-34-类模板中成员函数的创建时机

这篇来学习下类模板中普通函数的创建时机。如果是普通的类的成员函数,在类的实例化对象创建过程中就可以创建成员函数。但是在类模板中,成员函数是不会里面创建。因为这里T这个类型如果没有被确定,成员函数是无法创建的,而是这个成员函数在调用的时候才被创建。下面使用代码来证明这个结论。类模板中,成员函数是在被调用的时候才创建代码如下#include <iostream>#include <string>using namespace std;class Person1{

2020-07-12 16:19:43 1394

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除