C++ list (tcy)
1.1.说明:std::list是顺序容器是双向链表;提供双向迭代功能,但空间效率较低双向链表元素都有一指针指向后一元素,也有一指针指向前一个元素支持从容器中任何位置插入和删除元素。不支持快速随机访问。添加,删除和移动列表中或多个列表中的元素不会使迭代器或引用无效。仅当删除相应的元素时,迭代器才无效。1.2.注意:不支持使用下标随机存取元素
1.3.函数:
函数 | 实例 | 说明 |
构造函数 | ||
operator= | ||
assign(lst.begin(),lst.end()) | 分配 | |
get_allocator | 返回关联的分配器 | |
Element access元素访问 | ||
const int &front()const | lst.front(); | 返回数组首元素值 |
back() | lst.back(); | 访问最后一个元素 |
Iterators迭代器 | ||
begincbegin | 将迭代器返回到开头 | |
endcend | 将迭代器返回到末尾 | |
rbegincrbegin | 将反向迭代器返回到开头 | |
rendcrend | 将反向迭代器返回到末尾 | |
Capacity容量 | ||
bool empty() const; | 检查容器是否为空 | |
size_t lst.size() const; | 返回元素数 | |
size_t max_size() | 返回最大可能的元素数 | |
void resize(size_t newsize) | 更改存储的元素数 =size() | |
操作 | ||
void unique() | 删除连续的重复元素 | |
void remove(value) | 删除指定值,不存在忽略 | |
remove_if() | 删除满足特定条件的元素 | |
iterator erase(iterator position); | 删除迭代器所指元素;返回下一个元素的迭代器 | |
void pop_front() | 删除第一个元素 | |
void pop_back() | 删除最后一个元素 | |
erase(std::list) | ||
erase_if(std::list) | 擦除所有满足特定条件的元素 | |
clear() | 清除容器全部内容 | |
void push_front(const &T Val) | 元素插入头部; | |
void push_back(const &T Val) | 在末尾添加一个元素 | |
iter insert(iter pos, const &T val); | lst.insert(lst.begin()+2,0); | 在迭代器所指向元素前插入val |
void splice(iterator i, list <T> & x, iterator first, iterator last) | 在位置i前插入 x [first, last),x删除该区间。链表可是同一链表且i 不在 [first, last) | |
void merge(list <T> & x) | 合并x到尾部并清空 x。要求二个都是有序 | |
emplace(T value) | 就地构造元素 | |
emplace_front() | 在开始处就位构造一个元素 | |
emplace_back() | 在末尾就位构造一个元素 | |
Operations运作方式 | ||
void sort() | 对元素进行排序 | |
void reverse() | 反转元素的顺序 | |
swap(std::list) | 交换内容 |
2.实例#include <iostream>#include <list>#include <assert.h>using namespace std;#define print_list(lst) \{ cout << "["; \for (auto v:lst) \cout << v << ",";\cout << "]" << endl; \}
int main() {//构造函数:int arr[6] = { 1,3,2,5,2,3 };int arr1[5] = {1,3,2,4,6 };list<int> lst(arr, arr + 6);list<int> lst1(arr1, arr1 + 5);list<int> lst2{ 10,13,14 };list<int> lst3 = lst2,lst4;lst4.assign(lst2.begin(), lst2.end());list<int>::iterator it;//it++;合法 it+1;不合法//获取元素:cout << lst.front() <<"="<< *lst.begin() << endl;//1 1首元素cout << lst.back() << endl;//3 尾元素cout << lst.size() <<","<<lst.max_size()<< endl;//6,768614336404564650lst.resize(8);cout << lst.size() << "," << lst.max_size() << endl;//10, 768614336404564650assert(lst.empty() == false);//删除:lst.sort();lst.unique(); print_list(lst);//删除相邻重复元素lst.pop_front(); print_list(lst);//删除首元素lst.remove(5); print_list(lst);//删除元素5,若不存在忽略//排序:lst.sort(); print_list(lst); lst.reverse(); print_list(lst);//反序//使用mergelst.sort(); lst1.sort();lst.merge(lst1); print_list(lst); print_list(lst1);//lst=slt+lst1 lst1=空//附加:print_list(lst4); print_list(lst2);for(auto it=lst2.begin();it!=lst2.end();it++)//lst4=lst4+lst2;lst2不变lst4.push_back(*it);print_list(lst4); print_list(lst2);//遍历元素:for (auto it = lst.begin(); it != lst.end(); ++it) {cout << *it << "," << endl;}return 0;}
C++ list (tcy)相关推荐
- python socket华为云服务器和客户端通信(tcy)
经过无数次测试,失败,失败,失败,和华为技术沟通,失败,失败,失败,上网查询,没有:我都有些心灰意冷,最终解决,分享给大家. 不是替华为打广告,服务应该是没得说,有时一个问题的解决他是一个团队来处理的 ...
- 4.pymysql .cursor属性方法(tcy)
游标对象 2019/1/24 就是对数据库进行具体的操作了,比如增.删.改.查等等一系列操作都可以完成 1.游标类型: 类型 描述 Cursor 普通的游标对象,默认创建的游标对象 SSCursor ...
- python调用youdao百度翻译API,翻译文本(tcy)
用途:本文通过python实现在线翻译 说明:方式1:youdao实现翻译(不需要注册,翻译文本自动识别)方式2:baidu翻译API(需要注册,获取ip和密码)首先需要在百度翻译API官网进行注册, ...
- Windows10 pybind11 C++调用python-模块 (tcy)
C++访问Py库 1.1.Python类型:handle,object,bool_, int_,float_,str,bytes,tuple, list,dict,slice,none,capsule ...
- Categorical分类对象属性方法与CategoricalDtype(Series.cat.序列分类类型函数)(tcy)
pandas.Categorical 2019/1/7 函数: class pd.Categorical(values,categories =None,ordered=None,dtype=Non ...
- C++17基本教程 第6讲 数组 (tcy)
1.1.说明:1)普通数组无边界检查,访问不够方便,应用<array>或<vector>替代2)数组声明必用常量表达式:禁用变量:内存是连续的3)初始化数组元素个数必须< ...
- python 学习汇总41:unicode( tcy)
Unicode 2018/7/1 1.字符一般字符:'a';'严'; 特殊字符: 编辑器中不能直接输入,在字符串文字中使用转义序列 \u转义序列编写特定的Unicode代码点'\u0394' # ...
- python 学习汇总29:各种推导式( tcy)
python的各种推导式(轻量级循环) 2018 / 6 / 16 1.推导式用途: 推导式是从一个数据序列构建一个新的数据序列的结构体,类似于for 循环 列表/字典/集合推导式优于 map/fil ...
- halcon C++编程 第6讲 HVector(tcy)
1.1.说明:HDevelop中变量类型:tuples,iconic objects,vector1)iconic objects数据类型即图标对象,指的是 图像.区域和XLD数据的总称2)HALCO ...
- Windows10 pybind11 C++调用python-嵌入模块 (tcy)
添加嵌入式模块 1.1.说明:使用PYBIND11_EMBEDDED_MODULE宏添加嵌入式二进制模块1.2.注意:该定义必须放在全局范围内.它们可以像其他模块一样导入与只能创建单个二进制扩展模块不 ...
最新文章
- ssh mysql环境搭建 myeclipse_MyEclipse整合ssh三大框架环境搭载用户注册源码下载
- Mocha BSM产品亮点——关联事件分析
- Android socket 编程 实现消息推送
- eclipse集成lombok了但是无法使用_编码神奇Lombok!搭配IDEA更爽哦!
- 单一职责原理讲解coding
- c# rar解压大小_C#利用WinRAR实现压缩和解压缩
- Java网络编程2---Socket-TCP编程
- 随想录(c编译器的实现)
- 解决window8 下连接PLSQL 报ora-12154错误
- 基于Centos6.2 X64系统下的邮件系统(二)
- 基于springboot的鲜花商城系统
- 移动、联通、电信三大运营商手机号段大全 附手机号正则表达式
- ceph osd 修复备忘
- django 分拆views 提示 module ‘app001.views‘ has no attribute ‘xxx‘
- 亲测有效win10系统QQ音乐无法安装
- 利用python写出德州扑克小游戏
- 中文地址识别api的使用测试,快递地址自动补全,自动识别省市区,地址清洗,到底哪个好用?
- 让Python程序自动玩数独游戏,秒变最强大脑!
- 获取 个位数 十位数 百位数 千位数
- Win10常见问题【Office等】