前言:这个暑假才接触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. C 实战练习题目2

    题目:企业发放的奖金根据利润提成. 利润(I)低于或等于10万元时,奖金可提10%: 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%: 20万到4 ...

  2. Java复合优先于继承

    复合优于继承 继承打破了封装性(子类依赖父类中特定功能的实现细节) 合理的使用继承的情况: 在包内使用 父类专门为继承为设计,并且有很好的文档说明,存在is-a关系 只有当子类真正是父类的子类型时,才 ...

  3. 在ASP.NET Core中创建基于Quartz.NET托管服务轻松实现作业调度

    在这篇文章中,我将介绍如何使用ASP.NET Core托管服务运行Quartz.NET作业.这样的好处是我们可以在应用程序启动和停止时很方便的来控制我们的Job的运行状态.接下来我将演示如何创建一个简 ...

  4. Win32程序:与"LPCWSTR"类型的形参不兼容

    出现该问题的原因是通常手动输入的字符串都是LPCSTR类型的, 解决办法如下: 在工程处右键,属性-常规-字符集,将Unicode字符集改为为多字节字符集,应用并确认即可.   字符串常量报错: 在常 ...

  5. ArrayList 迭代器学习笔记

    我们先来看一段代码: List<String> list = new ArrayList<>(); list.add("str1"); list.add(& ...

  6. 【网络安全】——客户端安全(浏览器安全、XSS、CSRF、Clickjacking)

    ​ 近在学习网络安全相关的知识,于是先从业内一本系统讲Web安全的书<白帽子讲Web安全>系统学习Web安全的相关知识.在此整理书中的知识层次,不求详尽,只求自己对整个Web安全梗概有所了 ...

  7. post登录 jsessionid 以及cookie 传递

    先配置登录接口请求 登录成功后: 再其它请求中设置

  8. Vue 实战项目: 硅谷外卖(1)

    第 1 章: 准备 1.1. 项目描述 1) 此项目为外卖 WebApp(SPA) 2) 包括商家, 商品, 购物车, 用户等多个子模块 3) 使用 Vue 全家桶+ES6+Webpack 等前端最新 ...

  9. Java第三十天,I/O操作

    一.基本概念 输入输出一般是相对与内存.CPU寄存器.当前进程来说的 输入:从硬盘.键盘等外部设备读取数据到内存.当前进程或CPU寄存器中 输出:利用当前进程将数据写入到硬盘.终端显示屏等外部设备中 ...

  10. Python常见数据结构-推导式

    推导式是一种重要的Python特性,是一种简单精炼创建Python数据结构的方式. 列表推导式,详细参考https://www.jianshu.com/p/0a269715a742 基本格式为:[表达 ...