锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

STL 配接器、容器、迭代器

时间:2023-04-26 13:37:00 w轴向位移变送器配接ws

■ 配接器

栈(stack)

empty() 如果堆栈是空的,返回真理

pop() 移除栈顶元素

push() 在栈顶添加元素

size() 返回栈中元素数量

top() 返回栈顶元素

队列(queue)

back()返回最后一个元素

empty()如果队列空,返回真实

front()返回第一个元素

pop()删除第一个元素

push()在最后添加一个元素

size()返回队列中元素的数量

■ 容器

各容器特点

vector 头部和中间插入和删除效率低,尾部插入和删除效率高,支持随机访问。

deque 插入和删除头部和尾部效率高,支持随机访问,但效率不高 vector 高。

list 插入和删除在任何位置都很有效,但不支持随机访问。

set 由红黑树实现,其内部元素依据其值自动排序,每个元素值只能出现一次,不允许重复,且插入和删除效率比用其他序列容器高。

map 可自动设置 Key - value 的对应,key 和 value 可以是你需要的任何类型,根据 key 快速查找记录。

配接器和容器(直接)的增减

stack 首增首减 push() pop()

queue 首增尾减 push() pop()

vector 尾增尾减 push_back() pop_back()

deque 首尾可增减 push_front() push_back() pop_front() pop_back()

各种容器的共性

一般来说,各容器都有以下函数:

默认构造函数,复制构造函数,分析函数,empty()、max_size()、size()、operator=、operator<、operator<=、operator>、operator>=、operator==、operator!=、swap()。

顺序容器和相关容器共有以下函数
函数 作用
begin() 迭代器指针返回容器的第一个元素;
end() 返回最后一个元素后面的迭代器指针;
rbegin() 返回逆向迭代器指针,指向容器的最后一个元素;
rend() 返回逆向迭代器指针,指向容器前面的第一个元素;
clear() 删除容器中的所有元素;
erase(it) 删除迭代器指针it处元素。
array、vector 和 deque 容器函数成员
函数成员 函数功能 array vector deque
begin() 返回指向容器中第一个元素的迭代器。
end() 通常和 begin() 结合使用。
rbegin() 返回指向最后一个元素的迭代器。
rend() 返回指向第一元素所在位置前一位置的迭代器。
cbegin() 和 begin() 功能相同,但在此基础上增加 const 不能用于修改元素的属性。
cend() 和 end() 功能相同,但在此基础上增加 const 不能用于修改元素的属性。
crbegin() 和 rbegin() 功能相同,但在此基础上增加 const 不能用于修改元素的属性。
crend() 和 rend() 功能相同,但在此基础上增加 const 不能用于修改元素的属性。
assign() 用新元素替换原始内容。 -
operator=() 复制同类容器的元素,或用初始化列表替换现有内容。
size() 返回实际元素数。
max_size() 返回元素数的最大值。这通常是一个很大的值,通常是 232-1,所以我们很少使用这个函数。
capacity() 返回当前容量。 - -
empty() 判断容器中是否有元素,如果没有元素,则返回 true;反之,返回 false。
resize() 改变实际元素的数量。 -
shrink _to_fit() 将内存减少到等于当前元素实际使用的大小。 -
front() 引用第一个元素。
back() 返回最后一个元素的引用。
operator 使用索引访问元素。
at() 使用边界检查的索引访问元素。
push_back() 在序列的尾部添加一个元素。 -
insert() 在指定的位置插入一个或多个元素。 -
emplace() 在指定的位置直接生成一个元素。 -
emplace_back() 在序列尾部生成一个元素。 -
pop_back() 移出序列尾部的元素。 -
erase() 移出一个元素或一段元素。 -
clear() 移出所有的元素,容器大小变为 0。 -
swap() 交换两个容器的所有元素。
data() 返回指向容器中第一个元素的指针。 -
list 和 forward_list 的函数成员
函数成员 函数功能 list forward_list
begin() 返回指向容器中第一个元素的迭代器。
end() 返回指向容器最后一个元素所在位置后一个位置的迭代器。
rbegin() 返回指向最后一个元素的迭代器。 -
rend() 返回指向第一个元素所在位置前一个位置的迭代器。 -
cbegin() 和 begin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。
before_begin() 返回指向第一个元素前一个位置的迭代器。 -
cbefore_begin() 和 before_begin() 功能相同,只不过在其基础上,增加了 const 属性,即不能用该指针修改元素的值。 -
cend() 和 end() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。
crbegin() 和 rbegin() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。 -
crend() 和 rend() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。 -
assign() 用新元素替换原有内容。
operator=() 复制同类型容器的元素,或者用初始化列表替换现有内容。
size() 返回实际元素个数。 -
max_size() 返回元素个数的最大值,这通常是一个很大的值,一般是 232-1,所以我们很少会用到这个函数。
resize() 改变实际元素的个数。
empty() 判断容器中是否有元素,若无元素,则返回 true;反之,返回 false。
front() 返回容器中第一个元素的引用。
back() 返回容器中最后一个元素的引用。 -
push_back() 在序列的尾部添加一个元素。 -
push_front() 在序列的起始位置添加一个元素。
emplace() 在指定位置直接生成一个元素。 -
emplace_after() 在指定位置的后面直接生成一个元素。 -
emplace_back() 在序列尾部生成一个元素。 -
cmplacc_front() 在序列的起始位生成一个元索。
insert() 在指定的位置插入一个或多个元素。 -
insert_after() 在指定位置的后面插入一个或多个元素。 -
pop_back() 移除序列尾部的元素。 -
pop_front() 移除序列头部的元素。
reverse() 反转容器中某一段的元素。
erase() 移除指定位置的一个元素或一段元素。 -
erase_after() 移除指定位置后面的一个元素或一段元素。 -
remove() 移除所有和参数匹配的元素。
remove_if() 移除满足一元函数条件的所有元素。
unique() 移除所有连续重复的元素。
clear() 移除所有的元素,容器大小变为 0。
swap() 交换两个容器的所有元素。
sort() 对元素进行排序。
merge() 合并两个有序容器。
splice() 移动指定位置前面的所有元素到另一个同类型的 list 中。 -
splice_after() 移动指定位置后面的所有元素到另一个同类型的 list 中。 -

■ 迭代器

各容器的迭代器

容器 迭代器功能
vector 随机访问
deque 随机访问
list 双向
set / multiset 双向
map / multimap 双向
stack 不支持迭代器
queue 不支持迭代器
priority_queue 不支持迭代器

(1)所有迭代器

迭代器操作 操作含义
p++ 后置自增迭代器
++p 前置自增迭代器

(2)输入迭代器

迭代器操作 操作含义
*p 复引用迭代器,作为右值
p=p1 将一个迭代器赋给另一个迭代器
p==p1 比较迭代器的相等性
p!=p1 比较迭代器的不等性

(3)输出迭代器

迭代器操作 操作含义
*p 复引用迭代器,作为左值
p=p1 将一个迭代器赋给另一个迭代器

(4)正向迭代器

​ 提供输入输出迭代器的所有功能

(5)双向迭代器

迭代器操作 操作含义
–p 前置自减迭代器
p– 后置自减迭代器

(6)随机迭代器

迭代器操作 操作含义
p+=i 将迭代器递增i位
p-=i 将迭代器递减i位
p+i 在p位加i位后的迭代器
p-i 在p位减i位后的迭代器
p[i] 返回p位元素偏离i位的元素引用
p 如果迭代器p的位置在p1前,返回true,否则返回false
p<=p1 p的位置在p1的前面或同一位置时返回true,否则返回false
p>p1 如果迭代器p的位置在p1后,返回true,否则返回false
p>=p1 p的位置在p1的后面或同一位置时返回true,否则返回false
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章