首页 > 其他分享 >STL、字符串、字符的函数、队列

STL、字符串、字符的函数、队列

时间:2024-08-24 20:22:46浏览次数:12  
标签:返回 迭代 STL bound back 队列 为空 字符串

 vector, 变长数组,倍增的思想

 size()  //返回元素个数
    empty()  //返回是否为空
    clear()  //清空
    front()/back()//开头/结尾
    push_back()/pop_back()//输入/删除首个
    begin()/end()    
    迭代器 = find(a.begin(), a.end(), x);


string,字符串

size()/length()  返回字符串长度
 empty()//是否为空(true/false)
 clear()//清空
 substr(起始下标,(子串长度))//  返回子串
 c_str()  //返回字符串所在字符数组的起始地址

// 获取一行字符串(包含空格)
string s;
getline(cin, s);

// 判断字符是否是数字
char x;
// 方法1
if(x >= '0' && x <= '9') ...
// 方法2
if(isdigit(x)) ...

//单个字符变小写
x = tolower(x); // char x;
// 变大写
x = toupper(x); // char x;

// 把字符串变小写
string a; 
for(int i=0; i<a.size(); i++){
 a[i] = tolower(a[i]); //单个字符变小写
}


queue, 队列

    size()//长度
    empty()//是否为空
    push()  向队尾插入一个元素
    front()  返回队头元素
    back()  返回队尾元素
    pop()  弹出队头元素


set, map, multiset, multimap, 基于平衡二叉树(红黑树),动态维护有序序列

 size()//长度
    empty()//是否为空
    clear()//清除
    begin()/end()//前/后
    ++, -- //返回前驱和后继,时间复杂度 O(logn)

    set/multiset
        insert()  //插入一个数
        find()  //查找一个数
        count()  返回某一个数的个数
        erase()/*
            (1) 输入是一个数x,删除所有x   O(k + logn)
            (2) 输入一个迭代器,删除这个迭代器*/
        lower_bound()/upper_bound()
            lower_bound(x)  返回大于等于x的最小的数的迭代器
            upper_bound(x)  返回大于x的最小的数的迭代器
    map/multimap
        insert()  插入的数是一个pair
        erase()  输入的参数是pair或者迭代器
        find()//查找
unordered_set, unordered_map, unordered_multiset, unordered_multimap, 哈希表
    和上面类似,增删改查的时间复杂度是 O(1)
    不支持 lower_bound()/upper_bound(), 迭代器的++,--
如果有疑问/补充评论区说!!!
不一定可以及时回复,请耐心等待!!!

可参考信奥一本通附页

注:次文章来自我的ACGO文章C++ STL +字符串+字符函数+队列-ACGO题库|信息学竞赛OJ刷题平台

标签:返回,迭代,STL,bound,back,队列,为空,字符串
From: https://blog.csdn.net/2403_86855185/article/details/141503886

相关文章

  • C++:STL六大组件,知识点总结。
    STL知识点总结STL是C++标准库中的一个重要部分,提供了一组灵活通用的数据结构,核心是模板类。接下来是STL的主要组件及其功能简介。1.容器容器是用来存储和管理一组数据的对象。不同的容器适用于不同类型的数据存储需求。可理解为各种形式实现的存储结构顺序容器vec......
  • rustlings v6.0 运行时出现 “ You are trying to run Rustlings using the old metho
    背景在之前学习rust时,使用过一段时间rustlings感觉还不错,但是之前的学习只把rustlings的题目刷了一半,然后想再从头到尾刷一遍rustlings的题目。在rustlings的README.md文档中也没有找到重置rustlings的方法,而且官方的分支也更新到了v6.2.0(我之前使用的似乎是v5.......
  • java字符串基础详解
    字符串的输入用Scanner类的方法 nextLine()。关键代码如下:Stringss;Scannersc=newScanner(System.in);ss=sc.nextLine();字符串中字符的获取方法(1):用ss.charAt(k)获取字符串ss中索引号为k的字符。(字符串中首字符的索引号为0)Stringss="Hello,world!";/......
  • [LeetCode笔记]942. 增减字符串匹配
    /*942.增减字符串匹配由范围[0,n]内所有整数组成的n+1个整数的排列序列可以表示为长度为n的字符串s,其中:如果perm[i]<perm[i+1],那么s[i]=='I'如果perm[i]>perm[i+1],那么s[i]=='D'给定一个字符串s,重构排列perm并返回它。如果有多个有效排......
  • 通过队列通信实现红外遥控、旋转编码器和MPU6050数据处理的打砖块游戏开发
     声明:项目源码参考韦东山老师百问网嵌入式专家-韦东山嵌入式专注于嵌入式课程及硬件研发(100ask.net)        在本项目中,打砖块游戏的核心逻辑在一个单独的任务中实现,同时系统还需要处理来自红外遥控、旋转编码器和MPU6050传感器的数据输入。为此,使用FreeRTOS的队列......
  • 字符串包含了不需要的双引号,导致读取成json文件失败?Python怎么批量修改?
    大家好,我是Python进阶者。一、前言前几天在Python最强王者交流群【哎呦喂 是豆子~】问了一个Python数据处理的问题。问题如下:大佬们请教下这个问题,数据为下载的html文件,写法已经固定,解析成json文件会报错,这种字符串包含了不需要的双引号,导致读取成json文件失败?怎么批量修改?用......
  • Java工具类之字符串类(超详细)
    1、 字符串类字符串是我们在编程中最常使用的一种数据类型,Java中用类来描述字符串,其中最常用的字符串处理类是String,此外还有StringBuffer和StringBuilder。在本节,我们会了解每种字符串处理类的特点,以便能在应用时选择合适的字符串类型。字符串不属于8种基本数据类型,而是一种......
  • [Redis]消息队列
    Redis如何实现消息队列1、使用ListList最为简单和直接,主要通过lpush、rpop存储和读取消息队列的(先进先出)ruby代码解读复制代码127.0.0.1:6379>lpushmq"firstMsg"#推送消息firstMsg(integer)1127.0.0.1:6379>lpushmq"secondMsg"#推送消息secondMsg(integer)212......
  • [消息队列]kafka
    Kafka如何保证消息的消费顺序?我们在使用消息队列的过程中经常有业务场景需要严格保证消息的消费顺序,比如我们同时发了2个消息,这2个消息对应的操作分别对应的数据库操作是:更改用户会员等级。根据会员等级计算订单价格。假如这两条消息的消费顺序不一样造成的最终结果就会......
  • 数据结构day04(队列 Queue 循环队列、链式队列)
    目录【1】队列Queue1》队列的定义 2》循环队列3》链式队列 【1】队列Queue1》队列的定义队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。队列是一种先进先出(FirstInFirstOut)的线性表,简称FIFO。允许插入的一端称为队尾,允许删除的一端......