首页 > 编程语言 >有关c++STL容器及头文件

有关c++STL容器及头文件

时间:2024-05-03 17:02:16浏览次数:16  
标签:队列 头文件 STL 元素 back c++ int vector push

  • 万能头

打遍天下无敌手(除了vjudge)
#include<bits/stdc++.h>
  • 通用函数(在以下STL容器中均适用)

size返回容器的实际长度(元素个数)
empty返回一个bool型,表示容器是非为空

  • vector

声明:
vector<int>
头文件:

Here
#include<vector>

一些函数:
clear清空
迭代器与begin,end参考以下代码

遍历vector并输出
for(int i=0;i<a.size();i++){
	cout<<a[i]<<endl;
}
//或者
for(vector<int>::iterator it=a.begin();it!=a.end();it++){
	cont<<*it<<endl;
}

front返回vector第一个元素,等价于*a.begin()a[0]
back返回vector最后一个元素,等价于*--a.end()a[a.size()-1]
push_back在vector尾部插入元素
pop_back删除vector尾部元素

附:用vector代替邻接链表
const int maxn=1e6+10;
vector<int> v[maxn],e[maxn];
void add(int x,int y,int z){//有向边存图 
	v[x].push_back(y);
	e[x].push_back(z);
}
for(int i=0;i<v[x].size();i++){//遍历从x出发的所有有向边 
	int y=v[x][i],z=e[x][i];
}
  • 队列

头文件:

Here
#include<queue>
#include<deque>
  • 普通队列

声明:
queue<int>
一些函数:
push从队尾入队
pop从对头出队
front返回队头元素
back返回队尾元素

  • 优先队列

声明:

Here
//升序队列,小顶堆
priority_queue <int,vector<int>,greater<int> > q;
//降序队列,大顶堆
priority_queue <int,vector<int>,less<int> >q;
//基础类型默认为大顶堆
priority_queue<int> a;

一些函数:
push将元素插入堆
pop删除堆顶元素
top返回堆顶元素

  • 双端队列

ps:双端队列支持随机访问
一些函数:
frontback
push_back从队尾入队
push_front从队头入队
pop_back从队尾出队
pop_front从队头出队

未完待续...

标签:队列,头文件,STL,元素,back,c++,int,vector,push
From: https://www.cnblogs.com/MxGms/p/18160321

相关文章

  • 提高安全性,优雅实现拷贝与交换:C++中的Copy-and-Swap惯用法
     概述:拷贝并交换(Copy-and-Swap)是C++编程中的惯用法,用于实现赋值操作符和确保异常安全的拷贝构造函数。其核心思想是通过拷贝构造函数创建临时副本,再通过交换确保操作的异常安全性。这种方法在C++11之前和之后都适用,但在C++11中,移动语义和右值引用的引入使得实现可以更加高效。......
  • 【基础】一些新的STL
    Reduce(C++17)lls=reduce(a+1,a+1+n);//求和lls=reduce(a+1,a+1+n,std::plus<ll>);//求和doubles=reduce(a+1,a+1+n,std::multiples<double>);//求积ints=reduce(a+1,a+1+n,std::max<int>);/......
  • 高效遍历:C++中分隔字符串单词的3种方法详解与实例
     概述:在C++中,遍历由空格分隔的字符串的单词有多种方法,包括使用`std::istringstream`、手动遍历字符和正则表达式。其中,`std::istringstream`是简单高效的选择,通过流提取单词。手动遍历字符较为繁琐,正则表达式方法更灵活但可能有性能开销。根据实际需求选择方法,本文提供了清晰......
  • 《Effective C++》第三版-4. 设计与声明(Design and Declarations)
    目录条款17:让接口容易被正确使用,不易被误用(Makeinterfaceseasytousecorrectlyandhardtouseincorrectly)限制类型和值规定能做和不能做的事提供行为一致的接口条款19:设计class犹如设计type(Treatclassdesignastypedesign)条款20:宁以pass-by-reference-to-const替换pass......
  • linux环境和vim能够编辑c/c++
    一、准备Linux环境整体安装和使用教程按照 http://why.ink:8080/ICS/2023/这个来进行讲的很全面linux安装软件,有些软件安装起来真的是问题重重,我认为这是linux的问题,而且还会遇到bug,从软件易用性上来看,是不如windows,但从开发角度来说倒是linux更好用一些Linux安装准备:1、......
  • C++基于范围的for循环优劣
    C++的范围基for循环是对这些更传统循环方式的一种抽象,使得代码更简洁,更容易阅读和维护,同时减少了出错的机会,特别是在涉及复杂数据结构时。如我某个工程中的一个代码段:QDateTimetime=QDateTime::currentDateTime();for(constQPair<QString,QDateTime>&record:me......
  • 使用 Visual C++ 的 Office 自动化
    摘要本文解答了有关从VisualC++自动化到MicrosoftOffice的常见问题。更多信息目录什么是自动化?我不熟悉自动化,在哪里可以找到要了解详细信息的好资源?是否有其他方法可以使用自动化?什么是COM? 如何实现附加到正在运行的Office应用程序实例?如何实现传......
  • C++重写
    数组DiscoveredTileIndexed和DiscoveredTileSortingCosts这两个数组是用来存储遍历的方格的,DiscoveredTileSortingCosts存储的是每个方格的消耗,DiscoveredTileIndexed存储的是每个方格的位置即(x,y)。DiscoveredTileSortingCosts中的消耗和DiscoveredTileIndexed位置是一一对......
  • C++指针与引用(Pointers OR References)
    一、PointersPointer是指针,可以用来指向任何一个objects,包括一般变量:1inti=3;2int*pi=&i;3cout<<pi<<endl;//0x0064FDF04cout<<*pi<<endl;//3此时pi本身内含i的地址,要取出pi所指向的object,可以使用*运算符(dereferenceoperator).Pointer......
  • C/C++如何写调试宏
    1.调试宏以及测试在写代码时,不可避免需要打印提示、警告、错误等信息,且要灵活控制打印信息的级别。另外,还有可能需要使用宏来控制代码段(主要是调试代码段)是否执行。为此,本文提供一种调试宏定义方案,包括打印字符串信息LOG1宏和格式化打印LOG2宏,且能通过宏控制代码段执行。完整代......