C++顺序容器

C++顺序容器

QQ : 1841545843
邮箱 : jiaxx903@163.com

  1. 标准库中的顺序容器
  • vector 可变大小数组
  • deque 双端队列
  • list 双向链表
  • forward_list 单向链表
  • array 固定大小数组, 不能添加或删除元素
  • string 保存字符串容器
  1. string 和 vector 将元素保存在连续的内存空间中。
  2. deque 支持快速的随机访问。
  3. 向容器中添加元素
c.push_back(t)             // 在c的尾部创建一个值为t 或由args创建的元素 
c.emplace_back(args)

c.push_front(t)             // 在c的头部创建一个值为t或由args创建的元素
c.emplace_front(args)

c.insert(p, t)                 // 在迭代器p之前插入创建一个值为t或由args创建的元素            
c.emplace(args)

c.insert(p, n, t)             // 在迭代器 p 之前插入 n 个值为t的元素

c.insert(p, b, e)           // 将迭代器b - e 之间元素插入到 p之前

// array foeward_list   不支持 pushk_back ........
  1. 通过使用insert的返回值,可以在容器中一个特定位置反复插入元素。iter 返回的迭代器恰好指向这个新元素。
while (cin >> word)
{
	iter = lst.insert(iter, word);              // 等价于调用 pushh_Front
} 
  1. emplace (C++11新引入的) 相当于Insert
  2. 在顺序容器 中访问元素
c.back()          // 返回 c 中尾元素的引用
c.front()          // 返回c中首元素的引用
c[n]                // 返回下标为n的元素的引用
c.at(n)         // 返回下标为n的元素应用, 如果下标越界,报错  
  1. 在顺序容器中删除元素
c.pop_back()                   // 删除c中尾元素
c.pop_front()                  // 删除c中首元素
c.erase(p)                    // 删除p指向的元素
c.rease(p, e)                // 删除 p - e之间的元素
c.clear()                      // 清除所有元素
	···
  1. 改变容器大小
c.resize(n)                  // 调整c的大小为n个元素
c.resize(n, t)               // 调整c的大小为n个元素,其他位置由t代替
  1. 容器大小管理
c.shrink_to_fit()      // 请将capacity()减少到与size()相同的大小
c.capacity()          // 不重新分配内存空间的话, c可以保存多少元素
c.reserve()           // 分配至少能容纳n个元素的内存空间
  1. subnstr 操作返回一个string ,它是原始string 的一部分货全部拷贝
  2. string 特有的 append 和 replace
append 操作是在 string 末尾进行插入操作的一种简写

s.append(" 4 th ");

replace 操作是调用 erase 和 insert 的一种简写形式

s.replace(11. 3. "5 th");

  1. string 搜索操作
    每个搜索都返回string::size_type值
    搜索失败返回一个string::npos
s.find(args)          // 查找s中args第一次出现的位置
s.rfind(args)          // 查找s中args最后一次出现的位置
s.find_first_of(args)
s.find_last_of(args)
s.find_first_not_of(args)
s.find_last_not_of(args)

  1. string 和数值之间的数字你换
to_string(val)
stoi(a, p, b)  // 返回s的起始子串的数值
...............     // 转换成其他类型的  sto*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值