请提供关于C语言中栈、队列和向量基本操作的详细示例吗?
- 内容介绍
- 相关推荐
本文共计1369个文字,预计阅读时间需要6分钟。
前言:最近在接触搜索算法的课题,基本都用到了BFS,经常用到的数据结构是栈、队列和vector。本文将详细介绍C++中stack、queue和vector的基本操作,供大家参考学习。
正文:C++中,stack、queue和vector是常用的数据结构,以下将分别介绍它们的基本操作。
1. stack(栈)
栈是一种后进先出(Last In First Out, LIFO)的数据结构。主要操作包括:
- push:向栈中添加元素- pop:从栈中移除元素- top:返回栈顶元素- empty:判断栈是否为空
以下是一个简单的stack使用示例:
cpp#include
int main() { std::stack s;
s.push(1); s.push(2); s.push(3);
std::cout << Top element: < while (!s.empty()) { std::cout < return 0;} 2. queue(队列) 队列是一种先进先出(First In First Out, FIFO)的数据结构。主要操作包括: - push:向队列中添加元素- pop:从队列中移除元素- front:返回队列头元素- empty:判断队列是否为空 以下是一个简单的queue使用示例: cpp#include int main() { std::queue q; q.push(1); q.push(2); q.push(3); std::cout << Front element: < while (!q.empty()) { std::cout < return 0;} 3. vector(向量) vector是一种动态数组,可以随时扩展和收缩。主要操作包括: - push_back:向vector末尾添加元素- pop_back:从vector末尾移除元素- front:返回vector头元素- back:返回vector尾元素- empty:判断vector是否为空- size:返回vector中元素个数 以下是一个简单的vector使用示例: cpp#include int main() { std::vector v; v.push_back(1); v.push_back(2); v.push_back(3); std::cout << Front element: < while (!v.empty()) { std::cout < return 0;} 总结:本文介绍了C++中stack、queue和vector的基本操作。通过学习这些数据结构,有助于更好地理解搜索算法等算法的实现。希望对大家有所帮助。 前言 这几天在接触搜索的题目,用bfs时基本都用到队列,就顺便学习了数据结构的栈、队列。本文将详细给大家介绍关于c++中stack、queue和vector的基本操作,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 stack 的基本操作有: 入栈,如例: 出栈,如例: 访问栈顶,如例: 判断栈空,如例: 访问栈中的元素个数,如例: queue 的基本操作有: 入队,如例: 出队,如例: 访问队首元素,如例: 访问队尾元素,如例: 判断队列空,如例: 访问队列中的元素个数,如例: vector的基本操作有: 尾部插入数字: 使用下标访问元素, 使用迭代器访问元素.
vector<int>::iterator it;
for(it=vec.begin();it!=vec.end();it++)
cout<<*it<<endl;
插入元素: 删除元素: 向量大小: 清空: 注意: 使用reverse将元素翻转:需要头文件 使用sort排序:需要头文件 可以通过重写排序比较函数按照降序比较,如下: 定义排序比较函数:
bool Comp(const int &a,const int &b)
{
return a>b;
}
调用时: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对自由互联的支持。
s.push(x);
s.pop();注意,出栈操作只是删除栈顶元素,并不返回该元素。
s.top()
s.empty() ,当栈空时,返回true。
s.size() 。
q.push(x); 将x 接到队列的末端。
q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
q.front() , 即最早被压入队列的元素。
q.back() ,即最后被压入队列的元素。
q.empty() ,当队列空时,返回true。
q.size()vec.push_back(a);cout<<vec[0]<<endl;记住下标是从0开始的。vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a;vec.erase(vec.begin()+2);删除第3个元素vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0开始vec.size();vec.clear();#include<algorithm>reverse(vec.begin(),vec.end());将元素翻转(在vector中,如果一个函数中需要两个迭代器,一般后一个都不包含.)#include<algorithm> ,sort(vec.begin(),vec.end()); (默认是按升序排列,即从小到大).sort(vec.begin(),vec.end(),Comp) ,这样就降序排序。
本文共计1369个文字,预计阅读时间需要6分钟。
前言:最近在接触搜索算法的课题,基本都用到了BFS,经常用到的数据结构是栈、队列和vector。本文将详细介绍C++中stack、queue和vector的基本操作,供大家参考学习。
正文:C++中,stack、queue和vector是常用的数据结构,以下将分别介绍它们的基本操作。
1. stack(栈)
栈是一种后进先出(Last In First Out, LIFO)的数据结构。主要操作包括:
- push:向栈中添加元素- pop:从栈中移除元素- top:返回栈顶元素- empty:判断栈是否为空
以下是一个简单的stack使用示例:
cpp#include
int main() { std::stack s;
s.push(1); s.push(2); s.push(3);
std::cout << Top element: < while (!s.empty()) { std::cout < return 0;} 2. queue(队列) 队列是一种先进先出(First In First Out, FIFO)的数据结构。主要操作包括: - push:向队列中添加元素- pop:从队列中移除元素- front:返回队列头元素- empty:判断队列是否为空 以下是一个简单的queue使用示例: cpp#include int main() { std::queue q; q.push(1); q.push(2); q.push(3); std::cout << Front element: < while (!q.empty()) { std::cout < return 0;} 3. vector(向量) vector是一种动态数组,可以随时扩展和收缩。主要操作包括: - push_back:向vector末尾添加元素- pop_back:从vector末尾移除元素- front:返回vector头元素- back:返回vector尾元素- empty:判断vector是否为空- size:返回vector中元素个数 以下是一个简单的vector使用示例: cpp#include int main() { std::vector v; v.push_back(1); v.push_back(2); v.push_back(3); std::cout << Front element: < while (!v.empty()) { std::cout < return 0;} 总结:本文介绍了C++中stack、queue和vector的基本操作。通过学习这些数据结构,有助于更好地理解搜索算法等算法的实现。希望对大家有所帮助。 前言 这几天在接触搜索的题目,用bfs时基本都用到队列,就顺便学习了数据结构的栈、队列。本文将详细给大家介绍关于c++中stack、queue和vector的基本操作,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 stack 的基本操作有: 入栈,如例: 出栈,如例: 访问栈顶,如例: 判断栈空,如例: 访问栈中的元素个数,如例: queue 的基本操作有: 入队,如例: 出队,如例: 访问队首元素,如例: 访问队尾元素,如例: 判断队列空,如例: 访问队列中的元素个数,如例: vector的基本操作有: 尾部插入数字: 使用下标访问元素, 使用迭代器访问元素.
vector<int>::iterator it;
for(it=vec.begin();it!=vec.end();it++)
cout<<*it<<endl;
插入元素: 删除元素: 向量大小: 清空: 注意: 使用reverse将元素翻转:需要头文件 使用sort排序:需要头文件 可以通过重写排序比较函数按照降序比较,如下: 定义排序比较函数:
bool Comp(const int &a,const int &b)
{
return a>b;
}
调用时: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对自由互联的支持。
s.push(x);
s.pop();注意,出栈操作只是删除栈顶元素,并不返回该元素。
s.top()
s.empty() ,当栈空时,返回true。
s.size() 。
q.push(x); 将x 接到队列的末端。
q.pop(); 弹出队列的第一个元素,注意,并不会返回被弹出元素的值。
q.front() , 即最早被压入队列的元素。
q.back() ,即最后被压入队列的元素。
q.empty() ,当队列空时,返回true。
q.size()vec.push_back(a);cout<<vec[0]<<endl;记住下标是从0开始的。vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a;vec.erase(vec.begin()+2);删除第3个元素vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0开始vec.size();vec.clear();#include<algorithm>reverse(vec.begin(),vec.end());将元素翻转(在vector中,如果一个函数中需要两个迭代器,一般后一个都不包含.)#include<algorithm> ,sort(vec.begin(),vec.end()); (默认是按升序排列,即从小到大).sort(vec.begin(),vec.end(),Comp) ,这样就降序排序。

