STL学习记录:链表

直接百度链表的话,其实和真正用起来的STL链表差的挺远的(毕竟有些情况能用就行~),还是自己写一下记录一下STL里链表具体用法吧

#include <bits/stdc++.h>
using namespace std;
int main ()
{
    //1. 定义
    //list<数据类型> 链表名称
    list<int> test;
    list<int>::iterator iter=test.begin();
    //2. 增删改查
    //增加
    test.push_front(1);        //向头部增加元素
    test.push_back(10);        //向尾部增加元素
    test.insert(iter,2,3);    //向指定位置(迭代器位置)增加几个元素
    //删除
    test.pop_back();    //删除尾部元素
    test.pop_front();    //删除头部元素
    test.remove(1);        //删除特定元素
    test.unique();        //删除相邻重复元素
    test.clear();
    //改
    test.sort();        //排序
    test.reverse();        //反转
    //查
    test.empty();    //如果空链表,返回值为真
    int howmany2=count(test.begin(),test.end(),2);    //查有多少个2
    iter=find(test.begin(),test.end(),2);            //如果没找到的话返回test.end()
    test.size();    //返回元素个数

    for (iter=test.begin();iter!=test.end();iter++)
        cout<<*iter<<endl;
    return 0;
}

原文地址:https://www.cnblogs.com/Salty-Fish/p/12303038.html

时间: 2024-11-05 15:50:23

STL学习记录:链表的相关文章

stl学习记录

Effective STL 中文版学习记录 条款4 判断容器是否为空 使用empty而不是size().size()操作在实现上不是一个时间常数操作条款5 尽量使用区间成员函数代替它们的单元素兄弟.STL实现中,区间范围显示比单个循环操作更优化 条款7:当使用new得指针的容器时,记得在销毁容器前delete那些指针vc2008下 运行代码 可以看到 该程序内存不断增加// 1111111.cpp : 定义控制台应用程序的入口点.// #include "stdafx.h" #incl

c++ STL 学习记录 草稿。

非常丑陋的尝试实现stl.慢慢修改吧. 1)简单实现 vector和list. 2)思索如何开始编写算法. 1,所有容器继承一个抽象容器.那么算法就可以使用抽象基类的next方法来遍历元素. 容器间耦合太高,放弃. 2,所有容器的元素T继承一个基类,算法使用基类的next方法来遍历元素.应该是可以的.做到一半,实现多态时,必须太多指针样子,好像跟stl的使用相差太远.看书发现stl是用模板模拟多态.或者说是模板的正宗,优雅的多态形式. 3,使用模板的更优雅的多态思想来实现容器的迭代器. 3)后面

stl学习记录(2)

#include <iostream> #include <utility> #include <tuple> #include <complex> #include <string> using namespace std; // 代码 改编自 C++标准库——自学教程与参考手册 英文第二版 //==================================== // tuple io template <int IDX,int M

STL学习记录:栈与队列

首先是栈的基本操作,也就这些了 #include <bits/stdc++.h> using namespace std; int main () { stack<int> test;//声明方式:stack <数据类型> 名称 test.push(2); //向栈中压入2 test.top()=1; //也可以直接改变栈顶的值 test.pop(); //弹出栈顶部的值 if (test.empty())//如果栈空,返回true cout<<"

STL学习之路之仿函数

STL中的仿函数(或者叫做函数对象):可以实现类似于函数一样的类型,函数最直接的调用形式就是:返回值 函数名(参数列表),仿函数实现了operator()操作符,使用类似于函数. 同时,STL还为仿函数提供了强大的配接器,也就是适配器Adapters,这些适配器本身也属于仿函数,调用方式同样类似于函数.更进一步,这些适配器可以和仿函数.函数.适配器再进行绑定.组合.适配,完成更加复杂的功能. 这部分应该是STL中最简单的部分,实现也比较简单.另外C++11标准对这部分调整比较大,我们先不考虑.暂

STL学习_配接器篇

STL学习_配接器篇 定义 配接器(Adapter)在STL组件的灵活组合运用功能上,扮演着轴承.转换器的角色.它事实上是一种设计模式.即将一个class的接口转换为另一个class的接口,使原本因接口不兼容而不能合作的classes,可以一起运作. 分类 STL所提供的各种适配器中,改变仿函数(functors)接口者,称为function adapter:改变容器(containers)接口者,称为container adapter:改变迭代器(iterators)接口者,称为iterato

【程序员编程艺术】学习记录2:左旋转字符串之循环移位法

[程序员编程艺术]学习记录2:左旋转字符串之循环移位法 GCD算法:(辗转相除法/欧几里得算法) gcd是求最大公约数的算法,作为TAOCP第一个算法 gcd算法流程: 首先给定两个整数m,n(m大于等于n)如果小于则直接交换再处理 ①求余数 r=m%n ②假如r=0,算法结束,n即为所求 否则,重新令m <- n, n <-r 之后循环 <<<<<<<<<<<<<<<<<<<&l

STL学习_List篇

STL学习--List篇 简介 List与Vector不同,它不使用连续空间,而是每次插入或删除一个元素,就配置或释放一个元素空间.故list对空间的使用精准,不浪费任何空间.list对任何位置的元素插入或删除,常数时间完成. List与Vector的使用,视元素的多少,元素的构造复杂度,元素存取行为的特性而定. List节点 List本身与List节点不同,List是一个双向的链表.其节点信息如下: struct _List_node_base { _List_node_base* _M_ne

Python学习记录-2016-12-17

今日学习记录 模块: import os#导入os模块 import sys#导入sys模块 os.system("df -h")#执行df -h命令 cmd_res = os.popen("df -h").read()#将命令的返回结果赋值给cmd_res,如果不加入.read()会显示命令的返回加过在内存的位置 print(sys.path)#显示系统变量路径,一般个人模块位于site-packages下,系统模块位于lib下 print(sys.argu[2]