首页 > 编程语言 >C++ STL摘记

C++ STL摘记

时间:2023-03-25 21:45:38浏览次数:52  
标签:string STL C++ queue int num 摘记 include reverse

一、string类补充

1.函数示例:

  (1)find和rfind函数,返回的是下标或者string::npos

index=ss.find(s1,pos,num)

  find从pos(包括)开始往右查找(num的作用待补充)

index=ss.rfind(s1,poss,num)

  rfind从pos(包括)开始往左查找(num的作用待补充)

代码示例:

//>>>>Qiansui
#include<iostream>
#include<algorithm>
#include<cmath>
#define ll long long

using namespace std;
const int maxm=1e4+5;
string ss[3]{"123asd123","a123gh123","ea123s123"},s1="123";

int main(){
	int index;
	cout<<"find\n";
	for(int i=0;i<3;++i){
		index=ss[i].find(s1);
		if(index!=string::npos) cout<<index<<endl;
		else cout<<"Error\n";
	}
	cout<<"rfind\n";
	for(int i=0;i<3;++i){
		index=ss[i].rfind(s1,6);
		if(index!=string::npos) cout<<index<<endl;
		else cout<<"Error\n";
	}
	cout<<string::npos;
	return 0;
}

运行结果:
image
  (2)遍历
代码示例:

#include<iostream>
#include <string>
using namespace std;
int main(){
	string s1{"world"};
	for(int i=0;i<s1.size(); ++i)
		cout<<s1[i]<<endl;
	for(auto c : s1)
		cout<<c<<endl;
 	return 0;
}

运行结果:
image

二、STL函数

头文件:#include

1.reverse函数 https://en.cppreference.com/w/cpp/algorithm/reverse
可以翻转数组、字符串、容器等
reverse函数用于反转在[first,last)范围内的顺序[first,last)(左闭右开),reverse函数没有返回值

例题:
https://atcoder.jp/contests/abc284/tasks/abc284_a?lang=en 简单的翻转vector<string>

三、priority_queue 优先队列

头文件#include<queue>
相关参考资料:
https://blog.csdn.net/c20182030/article/details/70757660
摘记:
默认从大到小,如:

	priority_queue<int> a;
	a.push(1);
	cout<<a.top()<<'\n';
	a.push(10);
	cout<<a.top()<<'\n';
	a.push(8);
	cout<<a.top()<<'\n';
	a.push(3);
	cout<<a.top()<<'\n';
	while(a.size()){
		cout<<a.size()<<" "<<a.top()<<'\n';
		a.pop();
	}
	return ;

image
greater<int>——从小到大——priority_queue<int,vector<int>,greater<int>> a
less<int>——从大到小——priority_queue<int,vector<int>,less<int>> a
top返回第一个,pop删除第一个,即队列头

标签:string,STL,C++,queue,int,num,摘记,include,reverse
From: https://www.cnblogs.com/Qiansui/p/17255679.html

相关文章

  • C/C++保安值班安排系统[2023-03-25]
    C/C++保安值班安排系统[2023-03-25]题目十五:保安值班安排系统问题描述:某公司有7名保安人员,由于工作需要进行轮休制度,一星期中每人休息一天。预先让每一个人选择自己认为......
  • C++命名规范
    C++命名规范共用准则只能是字母(A-Z,a-z)、数字(0-9)和下划线(_)组成,区分大小写文件、函数、类、变量名应当具有描述性类、自定义类型和变量名应当使用名词,函数名使用......
  • 面试高频问题之C++编译过程
    C++编译过程C++是一种高级编程语言,但是计算机并不能直接理解它。因此,需要将C++代码翻译成计算机可以理解的机器语言。这个过程就是编译过程,是C++程序从源代码到可执行文件......
  • PentestLab-web安全目录穿越-EXP3
    我们打开靶机选择第三个目录穿越打开图片观察发现可以看到后缀名称已经隐藏或者是过滤了我们尝试http://192.168.20.157/dirtrav/example3.php?file=../../../../etc/passwd......
  • 面试高频问题之C++编译过程
    C++编译过程C++是一种高级编程语言,但是计算机并不能直接理解它。因此,需要将C++代码翻译成计算机可以理解的机器语言。这个过程就是编译过程,是C++程序从源代码到可执行文件......
  • 设计模式之单例模式C++实现
    初步用C++实现单例模式,暂未考虑线程安全问题#include<stdio.h>#include<iostream>usingstd::cout;usingstd::cin;usingstd::endl;//单例模式的设计需求:一个......
  • JSTL——JSP标准标签库
          ......
  • C++ 用户自定义字面量(operator"" _)
    目录字面量自定义字面量定义容量字面量定义时间字面量参考字面量字面量是指源码中,固定的常量。比如,constchar*p="abcd";conststd::strings="efg";constintv......
  • C++ 2023年计算机学院”新生杯“ACM天梯赛周赛(一) 二进制转化的感悟
    题目描述对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:0000000001000100001100100请按从小到大的顺序输出这32种01......
  • c++ linux 编译 静态库 ,动态库
                        一起编译:  静态路径要用全路径    静态编译       规范写法  ......