前言:这个暑假才接触STL,仿佛开启了新世界的大门(如同学完结构体排序一般的快乐\(≧▽≦)/),终于彻底领悟了大佬们说的“STL大法好”(虽然我真的很菜www现在只学会了一点点...)这篇blog主要是总结一下一些简单用法,是怕我在要用时忘记又要去搜很麻烦,有哪里写的不对了请戳我~(如果你是大佬请跳过www这一篇是蒟蒻用来入门滴qwq)

备注:本篇blog参考了https://www.cnblogs.com/skyfsm/p/6934246.html,https://blog.csdn.net/Wchenchen0/article/details/81042596,https://www.cnblogs.com/cff2121/p/9892045.html,都写的很棒,大家可以去看看,特此感谢。


string

  • 最开始学语言时教练就介绍说string是一项c++特有的超强大的数据类型,当时作为超级小白的我被字符串搞到脑袋发蒙于是并没有任何兴趣去了解...(现在做字符串的模拟还是很崩溃QAQ),直到最近在学STL,看了前言的那篇博客,重新爱上string!接下来总结几个常用又方便的string函数~
  • string的定义:
  • #include<bits/stdc++.h>//#include<string>好像这个头文件是专门的,但是我一般都用的万能头,对于这个不太了解,详细了解可问度娘~
    string s;

    这样子就定义了一个字符串s啦

  • string的赋值
  • string s;//定义一个空串s
    string s="qwq"//合法赋值 cin>>s;//输入字符串s
    s=a;//成功赋值 string a;
    cin>>a;
    s.assign(a);//和上面一样的哎 s.assign(,'a');//给s赋值10个a string a,b;
    a="orz";
    b=" you";
    s=a+b;//合法赋值(这个真的好神奇www)
    cout<<s;//s此时为"orz you" //在进行加减操作时两个变量至少要有一个为string类型
    s=a+" you";//合法
    s="orz"+" you";//错误
  • 但是当我们要读入“Hello   world!”时,cin>>a,a此时为“Hello”,因为cin>>string一旦碰到空格就会停下来,这时我们可以用两个string读入。但是我们又不想开那么多string存怎么办呢qwq?这时候就可以用到getline
  • string s;
    getline(cin,s);
    cout<<s;
  • 这时s就可以读入一整行啦~\(≧▽≦)/~
  • 字符串的简单操作
s.empty() 如果s为空串,则返回true,否则返回false
s.length() 返回s字符串的长度
isalnum(c) 如果c是字母或数字,则为true
isalpha(c) 如果c是字母,则为true
isdigit(c) 如果c是数字,则为true
islower(c) 如果c为小写字母,则为true
isupper(c) 如果c为大写字母,则为true
tolower(c) 如果c为大写字母则将c转换为小写字母,否则直接返回c
toupper(c) 如果c为小写字母则将c转换为大写字母,否则直接返回c
  • ps:字符串的遍历应从0~s.length()-1(错了无数次!高能!QAQ)
  • string神奇函数(待补充)
  1. 找子串:这个真的是太好用啦!!!想起以前处理字符串还要一个个去循环遍历qwq这个真的是神器!

    string s="%%%you";
    string a="%you";
    cout<<s.find(a,);//0为从第0个位置找起,返回的是子串位置,如果没找到返回的则是一个超大值

双端队列deque

  • 队列都还没有学好前几天模拟考又碰到要用双端队列优化的QAQ只好两块硬骨头一起啃了qwq
  • 在网上找了好几篇双端队列blog,基本上讲的都是原理看得我这种蒟蒻一脸懵(瑟瑟发抖,干脆来总结一下从各位大佬及教练及自行体会出来的简单用法
  • 双端队列的定义:

    #include<queue>//头文件和队列的是一样的
    deque<int> q;//定义也和队列差不多啦
  • 双端队列的赋值:
    #include<queue>
    deque<int> q;
    q.push_front();//从头部插入一个元素
    q.insert(d.begin()+,);//从中间(这里是指第二个位置)插入一个元素
    q.push_back();//从尾部插入一个元素 这时候队列就为{ }啦
  • 双端队列的简单操作:
    q.clear() 清除队列中元素
    q.size() 求出队列大小
    q.pop_front() 从头部弹出
    q.pop_back() 从尾部弹出

STL入门大全(待编辑)的更多相关文章

  1. Effective STL 中文版(大全)

    Effective STL 中文版(大全) 作者:winter 候捷说,对于STL,程序员有三个境界,开始是使用STL,然后是理解STL,最后是补充STL.Effective STL是一本非常好的书, ...

  2. STL入门

    STL入门 STL的组成 六大组件 容器container 算法algorithm 迭代器iterator 仿函数function object 适配器adaptors 空间配制器allocator ...

  3. 20140725 快速排序时间复杂度 sTL入门

    1.快速排序的时间复杂度(平均时间复杂度为) 数组本身就有序时,效果很差为O(n^2) 2.STl入门 (1) C++内联函数(inline)和C中宏(#define)区别 内联函数有类型检查,宏定义 ...

  4. GitHub标星2.6万!Python算法新手入门大全

    今天推荐一个Python学习的干货. 几个印度小哥,在GitHub上建了一个各种Python算法的新手入门大全,现在标星已经超过2.6万.这个项目主要包括两部分内容:一是各种算法的基本原理讲解,二是各 ...

  5. [C++]C++ STL库函数大全

    #include <assert.h> //设定插入点 #include <ctype.h> //字符处理 #include <errno.h> //定义错误码 # ...

  6. 跟我学STL系列(1)——STL入门介绍

    一.引言 最近这段时间一直都在自学C++,所以这里总结下自己这段时间的学习过程,通过这种方式来巩固自己学到的内容和以备后面复习所用,另外,希望这系列文章可以帮助到其他自学C++的朋友们. 由于本人之前 ...

  7. 【c++】标准模板库STL入门简介与常见用法

    一.STL简介 1.什么是STL STL(Standard Template Library)标准模板库,主要由容器.迭代器.算法.函数对象.内存分配器和适配器六大部分组成.STL已是标准C++的一部 ...

  8. 【Unity入门】场景编辑与场景漫游快捷键

    版权声明:本文为博主原创文章,转载请注明出处. 打开Unity主窗口,选择顶部菜单栏的“GameObject”->“3D Object”->“Plane”在游戏场景里面添加一个面板对象.然 ...

  9. [技术] OIer的STL入门教程

    注: 本文主要摘取STL在OI中的常用技巧应用, 所以可能会重点说明容器部分和算法部分, 且不会讨论所有支持的函数/操作并主要讨论 C++11 前支持的特性. 如果需要详细完整的介绍请自行查阅标准文档 ...

随机推荐

  1. python win32com

    要使用Python控制MS Word,您需要先安裝win32com套件,這個套件可以到 http://sourceforge.net/projects/pywin32/ 找到.本文假設您已經正確安裝w ...

  2. Linux时间和现实时间不同步解决方案

    输入三条命令 yum install ntpdate -y ntpdate tiger.sina.com.cnping tiger.sina.com.cn 然后输入date检查时间是否已经同步

  3. OpenCV-Python 直方图-4:直方图反投影 | 二十九

    目标 在本章中,我们将学习直方图反投影. 理论 这是由Michael J. Swain和Dana H. Ballard在他们的论文<通过颜色直方图索引>中提出的. 用简单的话说是什么意思? ...

  4. 使用Python+OpenCV进行图像处理(三)| 视觉入门

    检测是计算机视觉任务中的主要任务之一,而且应用很广泛.检测技术可以帮助人类检测那些容易被肉眼忽略的错误:也可以"帮助"自动驾驶汽车感知空间信息.无疑自动化的检测技术的广泛应用将为我 ...

  5. R与金钱游戏:美股与ARIMA模型预测

    似乎突如其来,似乎合情合理,我们和巴菲特老先生一起亲见了一次,又一次,双一次,叒一次的美股熔断.身处历史的洪流,渺小的我们会不禁发问:那以后呢?还会有叕一次吗?于是就有了这篇记录:利用ARIMA模型来 ...

  6. Ajax-使用教程

    运行环境 ajax一定的是运行在网站服务器里面,因此你需要自己配置nodejs服务器 导学:传统的问题还有代理人ajax 传统的http中是又浏览器来做.它在发生和响应的时候网页是不能进行其他操作的 ...

  7. iOS 缩小 ipa 大小

    一.爱奇艺 爱奇艺移动应用优化之路:如何让崩溃率小于千分之二 iOS8 对于 App 的 text 段有 60MB 的限制: 超过 200MB 的 App 需要连接 WIFI 下载(之前是 150MB ...

  8. 模拟Java内存溢出

    本文通过修改虚拟机启动参数,来剖析常见的java内存溢出异常(基于jdk1.8). 修改虚拟机启动参数Java堆溢出虚拟机栈溢出方法区溢出本机直接内存溢出 修改虚拟机启动参数   这里我们使用的是ID ...

  9. 并查集 & 最小生成树详细讲解

    并查集 & 最小生成树 并查集 Disjoint Sets 什么是并查集?     并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将 ...

  10. pywinauto之PC端windows自动化测试

    pywinauto是一个用纯Python编写的GUI自动化库,并为Windows GUI精心开发.最简单的是,它允许您将鼠标和键盘操作发送到Windows和Linux上的对话框和控件,而到目前为止,仅 ...