前言:这个暑假才接触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. 阿里开源首个移动AI项目,淘宝同款推理引擎

    淘宝上用的移动AI技术,你也可以用在自己的产品中了. 刚刚,阿里巴巴宣布,开源自家轻量级的深度神经网络推理引擎MNN(Mobile Neural Network),用于在智能手机.IoT设备等端侧加载 ...

  2. 从使用到原理,探究Java线程池

    什么是线程池 当我们需要处理某个任务的时候,可以新创建一个线程,让线程去执行任务.线程池的字面意思就是存放线程的池子,当我们需要处理某个任务的时候,可以从线程池里取出一条线程去执行. 为什么需要线程池 ...

  3. 12c OCR corrupted results in CRS stack down.

    12c OCR corrupted results in CRS stack down. 1. check crsd.trc2017-03-21 16:14:44.667838 :  CRSOCR:2 ...

  4. [vijos1304]回文数<模拟>

    题目链接:https://vijos.org/p/1304 好久没写博客了,最近一直打不出题,感觉自己是废了,今天做了一道模拟水题,但还是半天没过,后来才发现是忘记考虐10以上的进制是带有字母的,然后 ...

  5. ftp 无法显示远程文件夹

    翻阅了网上前辈们的答案,都未能解决,所以就研究了一下 不需要防火墙的情况,关闭防火墙即可 下面使用的iptables防火墙验证的,其他的请自行验证 研究了好久,发现ftp使用端口波动很大,大概在300 ...

  6. D 【BJOI2018】求和

    时间限制 : 20000 MS   空间限制 : 565536 KB 评测说明 : 2s,512m 问题描述 master 对树上的求和非常感兴趣.他生成了一棵有根树,并且希望多次询问这棵树上一段路径 ...

  7. VM虚拟机复制文件问题

    需要安装好vmtools,安装好后,启动虚拟机环境: 把需要复制的文件拖进虚拟机环境窗口,鼠标指针会变成复制图标,直接左键即可复制: 不能Ctrl+c-Ctrl+v进去.

  8. java/php DES/CBC/PKCS5Padding加密解密算法实现过程

    先看java代码 public static String encrypt(String message, String key) throws Exception { Cipher cipher = ...

  9. 三通道低功耗ASK低频唤醒接收器PAN3501完全替代AS3933/GC3933

    低频唤醒接收器PAN3501软硬件兼容AS3933/GC3933,且新增了寄存器功能,可直接替换,供应稳定,高性价比. 产品介绍:    PAN3501是一款最多三个通道接收的低功耗ASK接收机,可用 ...

  10. Spring (六):整合Mybatis

    本文是按照狂神说的教学视频学习的笔记,强力推荐,教学深入浅出一遍就懂!b站搜索狂神说或点击下面链接 https://space.bilibili.com/95256449?spm_id_from=33 ...