【STL初步】不定长数组:vector + 集合:set + 映射:map

时间:2022-04-16 19:12:52

一、vector

为了节省空间,有时我们会使用动态数组vector。

定义动态数组

      vector<类型名>变量名

vector<int>que //定义que为一个int类型的动态数组

vector<char> a //定义 a 为一个char 类型的动态数组

vector<data> c //其中data为自定义的数据类型,可以为结构体

     指令

a[i] ---- 返回动态数组中的第i个元素
a.empty() ---  若动态数组为空,则返回true,否则返回false
a.size() --- 返回动态数组中元素的个数
a.resize() --- 修改动态数组大小
a.push_back() --- 向动态数组尾部插入一个元素
a.pop_back() --- 删除动态数组尾部的一个元素
a.begin() --- 返回指向vector头部的迭代器(指针)
a.end() --- 返回指向vector尾部元素的后一个元素的迭代器(指针)

  二、set

     set作为一个容器也是用来存储同一数据类型的数据类型,并且能从一个数据集合中取出数据,在set中每个元素的值都唯一,而且系统能根据元素的值自动进行排序(从小到大,改变可以重载运算符)。应该注意的是set中数元素的值不能直接被改变。

     指令

 

begin()--- 返回set容器的第一个元素

 

end() --- 返回set容器的最后一个元素

 

clear() --- 删除set容器中的所有的元素

 

empty() --- 判断set容器是否为空

 

max_size() --- 返回set容器可能包含的元素最大个数

 

size() --- 返回当前set容器中的元素个数

 

rbegin --- 返回的值和end()相同

 

rend() --- 返回的值和rbegin()相同

  三、map

  MapSTL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道

  定义

Map<int, string> mapStudent;