一、length()函数
C++中length()函数只能用来获取字符串长度。

string str = "ADAS";
int len = str.length();
1
2
其中len = 4

二、size()函数
C++中size()函数除了跟length()函数一样可以获取字符串长度之外,还可以获取vector类型的长度。

string str = "ADAS";
vector < int> num(10,5)

int lenstr = str.size();
int lenvec = num.size();
1
2
3
4
5
其中lenstr = 4; lenvec = 10

三、sizeof()函数
sizeof() 用于获取对象所占内存空间大小

char c[] = "ADAS";
char* cc = c;
char cn[40] = "ADAS";
int a[] = {1,2,3,4,5,6};
int* aa = a;
cout << sizeof(c) << sizeof(cc) << sizeof(cc) << sizeof(cn);
cout << sizeof(a) << sizeof(aa) << sizeof(aa);
1
2
3
4
5
6
7
结果输出:

sizeof(c) = 5 //c是数组,计算到'\0'位置,结果为4 * 1+1=7
sizeof(cc) = 8 //cc为指针类型,大小为8
sizeof(*cc) = 1 //*cc指向c的第一个字符,大小为1
sizeof(cn) = 40 //开辟40个char空间,大小为40 * 1=40
sizeof(a) = 24 //a是数组,但不需计算到'\0',结果为6 * 4=24
sizeof(aa) = 8 //aa为指针类型,大小为8
sizeof(*aa) = 4 //*aa指向a的第一个数字,大小为4
————————————————
原文链接:https://blog.csdn.net/LiuXF93/article/details/121202223

unordered_set接口的使用
unordered_set当中常用的成员函数如下:

成员函数    功能
insert    插入指定元素
erase    删除指定元素
find    查找指定元素
size    获取容器中元素的个数
empty    判断容器是否为空
clear    清空容器
swap    交换两个容器中的数据
count    获取容器中指定元素值的元素个数
————————————————
原文链接:https://blog.csdn.net/chenlong_cxy/article/details/122277348

所谓常量就是一个恒定不变的量,常量提供了C++程序设计中的安全性和可靠性。const的一个作用就是用来替代宏替换,const提供了对数值严格的类型检查,因此相对于宏替换而言const提供了强大的安全保证。如果预编译时的const型常量在函数中被改变,那么将引起一个编译错误。

如果consgt 位于*的左侧,则const修饰的是指针指向的常量;反之,如果const位于*的右侧,那么const就是修饰指针本身,即指针本身是常量。

模板函数的使用:

#inlcude<iostream>
#include<string>
using namespace std;

template<class T>
const T&max(const T&x,const T&y)
{
   return x<y?y:x;
}
void main(){
int i1=3;
int i2=7;
cout<<"Maximum is:"<<max(i1,i2)<<endl;
float f1=11.3;
float f2=12.5;
cout<<"Maximum is"<<max(f1,f2)<<endl;
string s1="test1";
string s2="test2";
cout<<"Maximum is"<<max(s1,s2)<<endl;
}

在对源码进行编译时,变化一起会基于模板函数的定义来创建多个函数版本。为了指导具体需要创建那个版本的函数,编译器需要浏览程序的源代码,检查实际传递给模板函数的参数类型。

 除了模板函数外,C++程序员还可以建立模板类。C++中的模板类是一种特殊的类,它的定义将独立于特殊的数据类型。

STL构成可以概括为“3大主体,6大组件,13个头文件”

13个头文件:<algorithm> <deque>(双向队列)<iterator><vector>(向量)<list>(链表)<map>(映射)<memory><numeric><queue>(队列)<set><functional><stack>(栈)<utility>

3大主体:algorithm(算法)、container(容器) 、iterater(迭代器)

6个组件:算法 、容器、迭代器、仿函数、适配器、空间适配器。

迭代器起初是设计模式的一种,它的意思是提供一种方法,使用按顺序访问某个容器中所含的各个元素,而无需暴露该容器的内部表述方法。这也是软件设计的一个基本原则,也就是说,通过引进一个间接层来简化所有问题的解决。在STL中迭代器被用来将算法和容器联系起来,起着某种粘合作用,容器提供迭代器,而算法使用迭代器。几乎STL提供的所有算法都是通过迭代器存取元素序列进行工作的,每一个容器都定义了其本身所专有的迭代器,用以存取容器中的元素。 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐