首页 > 编程语言 >c++STL用法总结

c++STL用法总结

时间:2022-09-06 13:00:34浏览次数:51  
标签:返回 lower STL vet c++ bound num 用法

一、vector的用法

vector vet;

1、排序:sort(vet.begin(), vet.end()), 时间复杂度O(nlogn)
2、查找:if(find(vet.begin(), vet.end(), x) != vet.end()), 时间复杂度O(n)

二、string的用法

string st1, st2;

1.查找: int pos = st1.find(st2), 从st1中找到一个等于st2的串,并返回第一次出现的位置
//为避免重复查找,可以在找到一个串之后,就将这个串进行更新

三、lower_bound & upper_bound

对于有序数组a而言,在O(logn)时间内返回查找结果

lower_bound:
①int x = lower_bound(a + 1, a + 1 + n, num) - a : 下标从1开始,返回第一个大于等于num的数的位置
②int x = lower_bound(a, a + n, num) - a : 下标从0开始,返回第一个大于等于num的数的位置

upper_bound和lower_bound用法类似,但是返回的是第一个大于num的数的位置

需要注意的是,使用的时候,要注意判断是否找到我们想要的结果。如果返回的位置为n + 1, 说明没找到,这个时候要进行特判!

标签:返回,lower,STL,vet,c++,bound,num,用法
From: https://www.cnblogs.com/N-lim/p/16661390.html

相关文章

  • STL 算法小结2
    关于stable_sort()和sort()的区别:C++中sort和stable_sort的区别:sort是快速排序实现,因此是不稳定的;stable_sort是归并排序实现,因此是稳定的;对于相等的元素sort可能改变......
  • Vue.$set的用法
    向响应式对象中添加一个属性,并确保这个新属性同样是响应式的,且触发视图更新。它必须用于向响应式对象上添加新属性,因为Vue无法探测普通的新增属性(比如this.myObject.n......
  • C++ vector的reserve和resize详解
    vector的reserve增加了vector的capacity,但是它的size没有改变!而resize改变了vector的capacity同时也增加了它的size!原因如下:     reserve是容器预留空间,但在空间......
  • C++字符串转换(stoi;stol;stoul;stoll;stoull;stof;stod;stold)
    1、C/C++:longint与longlong的区别在实际的使用中,long与int几乎没有区别:原因是早期的C编译器定义了longint占用4个字节,int占用2个字节,longint是名副其实的长整型。在AN......
  • C++面向对象-构造函数与析构函数
    以OOP实现一个顺序栈为例,介绍构造函数与析构函数#include<iostream>#include<iterator>usingnamespacestd;/*构造函数和析构函数函数的名字和类名一样,......
  • C++数据结构课程设计
    C++数据结构课程设计《数据结构》课程设计指导书一、课程设计的目的课程设计为学生提供了一个独立实践的机会,将课本上的理论知识和实际问题结合起来,锻炼学生分析、解决......
  • C++11~C++20 新基础类型
    目录整数类型longlong(C++11)字符类型char16_t和char32_t(C++11)C++11为什么要引入char16_t和char32_t?字符类型char8_t(C++20)参考资料整数类型longlong(C++11)C++1......
  • mysqldump的简单用法
    1.单个数据库备份,必须在系统命令行环境运行mysqldump-uusername–ppassword--default-character-set=utf8databasename>dumpfile-u用户名,有空格;-p后面是数据库密......
  • C++基础入门:C++初始
    1.C++环境:Clion搭建下载链接:clion官方网址1.1点击下载1.2下载对应版本1.3安装步骤:1.3.1下载完毕后,打开exe文件,进入安装界面,点击【Next>】1.3.2选择安装目录......
  • three.js基础用法
    import*asTHREEfrom'../libs/build/three.module.js';import{OrbitControls}from'../libs/jsm/controls/OrbitControls.js'import{CSS2DRenderer,CSS2DObje......