zoukankan      html  css  js  c++  java
  • C++顺序容器之list初探

    C++顺序容器之list初探

    双向链表,支持双向顺序访问。在list中任何位置进行插入和删除速度都很快。
    list不支持随机访问,为了访问一个元素,必须遍历整个容器。

    #include<iostream>
    #include<list>
    #include<algorithm>
    using namespace std;
    void printList(const list<int>& a);
    void printList(const list<int>& a)
    {
    	// 注意形参中是const list,所以下面也需要用const_iterator
    	// 否则distance无法使用
    	list<int>::const_iterator iter;
    	for (iter = a.begin(); iter != a.end(); ++iter)
    	{
    		size_t index = distance(a.begin(), iter);
    		cout << "a[" << index << "] = " << *iter << endl;
    	}
    	cout << endl;
    }
    int main()
    {
    	list<int> a;
    	// push_front、push_back插入数据
    	a.push_front(4);
    	a.push_front(3);
    	a.push_front(2);
    	a.push_front(1);
    	a.push_back(50);
    	printList(a);
    
    	// insert插入数据
    	list<int>::iterator iter;
    	iter = a.begin();
    	a.insert(iter, 0);
    	a.insert(++iter, 10);
    	a.insert(++iter, 4, 20); // 插入4个20
    	printList(a);
    
    	
    	// sort排序
    	cout << "sort排序" << endl;
    	a.sort();
    	printList(a);
    
    	// reverse逆序
    	cout << "reverse逆序" << endl;
    	a.reverse();
    	printList(a);
    
    	// erase删除指定元素
    	cout << "erase删除指定元素" << endl;
    	a.erase(iter);
    	printList(a);
    
    	// erase删除指定区间的元素
    	cout << "erase删除指定区间元素" << endl;
    	a.erase(++a.begin(), --a.end());
    	printList(a);
    
    	system("pause");
    	return 0;
    }
    
  • 相关阅读:
    Java数据结构和算法(2)之稀疏数组
    Java数据结构和算法(1)之队列
    Redis之Redis的数据类型
    Redis之Redis入门介绍
    Redis之NoSql入门和概述(二)
    rpc(二、springboot2.3.2+dubbo2.7.7)
    rpc(一、基础)
    zookeeper(二、curatorAPI使用)
    zookeeper(一、集群部署)
    项目部署(三、docker+Jenkins+springboot部署)
  • 原文地址:https://www.cnblogs.com/liutongqing/p/7506688.html
Copyright © 2011-2022 走看看