C++ list 使用方法
来源:互联网 发布:淘宝账户管理在哪里找 编辑:程序博客网 时间:2024/06/05 15:22
C++ list 使用方法
使用 list
需引入头文件#include <list>
引入命名空间 using namespace std;
list
函数如下
//assign() 给list赋值//back() 返回最后一个元素的引用//begin() 返回指向容器第一个元素的指针//clear() 删除所有元素//empty() 如果list是空的则返回true//end() 返回容器末尾的指针//erase() 删除一个元素//front() 返回第一个元素//get_allocator() 返回list的配置器//insert() 插入一个元素到容器中//max_size() 返回list能容纳的最大元素数量//merge() 合并两个list//pop_back() 删除最后一个元素//pop_front() 删除第一个元素//push_back() 在list的末尾添加一个元素//push_front() 在list的头部添加一个元素//rbegin() 返回指向第一个元素的逆向迭代器//remove() 从list删除元素//remove_if() 按指定条件删除元素//rend() 指向list末尾的逆向迭代器//resize() 改变list的大小//reverse() 把list的元素倒转//size() 返回list中的元素个数//sort() 给list排序//splice() 合并两个list//swap() 交换两个list//unique() 删除list中重复的元素
使用实例如下
// Pro1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <list>using namespace std;// 创建一个 list 容器的实例 intListtypedef list<int> intList;bool Is2(int i);bool Sort(int i, int j);int main(){ intList _intList; for (int i = 0; i < 3; ++i) { // 在容器头部添加一个元素 _intList.push_front(i); } for (int i = 0; i < 3; ++i) { // 在容器末尾添加一个元素 _intList.push_back(i * 10); } // 获取容器存储元素的个数 int size = _intList.size(); std::cout << "size : " << size <<endl; // size : 6 // 获取容器可以存储的最大元素个数 int max_size = _intList.max_size(); std::cout << "max_size : " << max_size << endl; // max_size : 357913941 // 声明 it 为容器迭代器 intList::iterator it; // 获取指向容器第一个元素的指针 //_intList.begin() // 获取指向容器最后一个元素 +1 的指针 // _intList.end() // 使用迭代器遍历容器 for (it = _intList.begin(); it != _intList.end(); ++it) { std::cout << *it << endl; // 2, 1, 0, 0, 10, 20 } // front()获取容器第一个元素的引用 int n = _intList.front(); std::cout << "n : "<< n << endl; // n : 2 // front() 作为第一个元素的引用,可以作为左值使用 _intList.front() = 111; n = _intList.front(); std::cout << "n : " << n << endl; // n : 111 // back() 返回最后一个元素的引用 n = _intList.back(); std::cout << "n : " << n << endl; // n : 20 // back() 作为最后一个元素的引用,可以作为左值使用 _intList.back() = 222; n = _intList.back(); std::cout << "n : " << n << endl; // n : 222 // 使用迭代器遍历容器 it = _intList.begin(); for (; it != _intList.end();) { // 删除一个元素 _intList.erase(it++); } size = _intList.size(); std::cout << "size : " << size << endl; // size : 0 // 在容器第一个元素位置插入数据 1,返回迭代器 it 位置处的指针 it = _intList.begin(); it = _intList.insert(it, 1); ++it; // 在迭代器 it 位置插入数据 2 it = _intList.insert(it, 2); // 在迭代器 it 位置插入 2 个数据 3 it = _intList.insert(it, 2, 3); for (it = _intList.begin(); it != _intList.end(); ++it) { std::cout << *it << endl; // 1, 3, 3, 2 } std::cout << "" << endl; // it = _intList.begin(); // 在_intList.begin()位置开始,插入++it和_intList.end() 之间的数据 _intList.insert(_intList.begin(), ++it, _intList.end()); for (it = _intList.begin(); it != _intList.end(); ++it) { std::cout << *it << endl; // 3, 3, 2, 1, 3, 3, 2 } // 删除容器第一个元素 _intList.pop_front(); // 删除容器最后一个元素 _intList.pop_back(); // 删除容器所有元素 _intList.clear(); size = _intList.size(); std::cout << "size : " << size << endl; // size : 0 // 判断容器是否为空 if (_intList.empty()) { std::cout << "_intList is empty" << endl; } for (int i = 0; i < 3; i ++) { _intList.insert(it, i); _intList.insert(it, i); } for (it = _intList.begin(); it != _intList.end(); ++it) { std::cout << *it << endl; // 0, 0, 1, 1, 2, 2, } std::cout << "" << endl; // 0, 0, 1, 1, 2, 2, // 删除容器中所有值为 1 的元素 _intList.remove(1); for (it = _intList.begin(); it != _intList.end(); ++it) { std::cout << *it << endl; // 0, 0, 2, 2, } std::cout << "" << endl; // 删除容器中符合 函数 Is2 返回 true 的值 _intList.remove_if(Is2); for (it = _intList.begin(); it != _intList.end(); ++it) { std::cout << *it << endl; // 0, 0, } std::cout << "" << endl; // 改变容器存储空间大小(可以存储元素个数) _intList.resize(10); // 改变容器存储空间大小,新添加数据默认填充 100 _intList.resize(10, 100); _intList.clear(); for (int i = 0; i < 5; i++) { _intList.push_back(i); } // 将容器中的数据反转 _intList.reverse(); for (it = _intList.begin(); it != _intList.end(); ++it) { std::cout << *it << endl; // 4, 3, 2, 1, 0 } std::cout << "" << endl; _intList.push_back(0); // 删除容器中重复的元素 _intList.unique(); for (it = _intList.begin(); it != _intList.end(); ++it) { std::cout << *it << endl; // 4, 3, 2, 1, 0 } // 将容器中数据按照 Sort 函数排序 _intList.sort(Sort); for (it = _intList.begin(); it != _intList.end(); ++it) { std::cout << *it << endl; // 4, 3, 2, 1, 0 } std::cout << "" << endl; intList _intList2; _intList2.push_back(100); _intList2.push_back(200); _intList2.push_back(300); // 将容器 _intList2容器合并到 _intList _intList.merge(_intList2); for (it = _intList.begin(); it != _intList.end(); ++it) { std::cout << *it << endl; // 0, 1, 2, 3, 4, 100, 200, 300 } // _intList2 数据已清空 size = _intList2.size(); std::cout << "size : "<< size << endl; // size : 0 std::cout << "" << endl; system("pause"); return 0;}bool Is2(int i){ return i == 2;}bool Sort(int i, int j){ return i < j;}
运行结果
0 0
- C#List<Category>使用方法
- 【C++】list的使用方法
- C++STL库 vector map list 使用方法
- list使用方法
- [C#]List的Sort()、Find()、FindAll()、Exist()的使用方法举例
- Virtual List的使用方法
- List的Contains使用方法
- Virtual List的使用方法
- C# list使用方法
- Virtual List的使用方法
- VC LIST控件使用方法
- C# list使用方法
- list使用方法详解
- C# list使用方法
- VC LIST控件使用方法
- 简单的list使用方法
- C# list使用方法
- List的使用方法
- [Leetcode]105. Construct Binary Tree from Preorder and Inorder Traversal@python
- 用 Python 和 OpenCV 检测和跟踪运动对象
- LeetCode264. Ugly Number II
- linux用户管理笔记
- QLPreviewItem
- C++ list 使用方法
- IOS高级控件(一)
- centos6.5修改硬盘分区
- 安卓蓝牙入门二-------整合版本
- 编写扩展性更好的程序——里氏替换原则
- POJ 1064 (二分)
- IOS高级控件(二)
- struts的开发模式
- redis命令 - APPEND