当前位置: 首页> 娱乐> 影视 > 可商用图片素材网站_深圳高端平台_南宁百度seo排名公司_在哪里可以发布自己的广告

可商用图片素材网站_深圳高端平台_南宁百度seo排名公司_在哪里可以发布自己的广告

时间:2025/7/8 11:32:34来源:https://blog.csdn.net/weixin_43454619/article/details/144614951 浏览次数:0次
可商用图片素材网站_深圳高端平台_南宁百度seo排名公司_在哪里可以发布自己的广告

STL

STL 就是标准模板库
STL 提供了多种容器,比如

vector:动态数组
deque:双端队列

set:有序集合
map:有序映射,键值对集合,键唯一且自动排序

stack:栈
queue:队列
priority_queue:优先队列

我们本次主要使用栈(stack),队列(queue),动态数组(vector)

stack 栈

push(x):将元素x入栈。这是将元素添加到栈顶的操作。
pop():将栈顶元素出栈。这是移除并返回栈顶元素的操作。
top():获取栈顶元素。这个操作返回栈顶元素,但不会移除它。
size():获取栈中元素的数量。这可以用来检查栈的当前大小。
empty():判断栈是否为空。如果栈为空,返回true,否则返回false。
注意:pop()函数使用的过程中必须栈中有元素

queue 队列

q.push(x):将元素x插入到队列的尾部,即队尾插入元素。
q.pop():删除队列头部的元素,即队首删除元素。
q.front():获取队列头部的元素,但不删除它,即取队首元素。
q.back():获取队列尾部的元素,但不删除它,即取队尾元素。
q.size():返回队列中元素的数量,即队中元素数量。
q.empty():检查队列是否为空,如果队列为空则返回true,否则返回false,即判断队空。

vectot 动态数组

v.push_back(x):在动态数组v的尾部增加元素x。
v.pop_back():删除动态数组v的尾部元素。
v.begin():返回指向动态数组v首元素的迭代器(可以理解为首元素地址)。
v.end():返回指向动态数组v末尾元素下一个位置的迭代器(可以理解为末尾元素下一个地址)。
v.size():返回动态数组v中元素的数量。
v.empty():判断动态数组v是否为空,如果为空则返回true,否则返回false

** 排序也很重要 sort(v.begin(), v.end()); **
倒序这里我们可以使用 ** sort(v.ubegin(), v.uend());**

示例:

只出现一次的整数

题目描述

给定n个整数,这n个整数中只有某一个整数只出现一次,其余每个整数都出现多次。
请找到只出现一次的整数并输出。
注意:用vector存储这n个整数。

输入描述

两行,第一行表示数字个数n(2 < n ≤ 106)。
第二行,n个整数,每个整数之间空格分隔(0 ≤ x ≤ 10000)。

输出描述

一个只出现一次的整数。

样例输入 1

10
3 1 5 1 12 3 6 6 5 5
样例输出 1

12

#include<bits/stdc++.h>
using namespace std;
vector<int> v;
int main(){int n;cin>>n;int num;for(int i=1;i<=n;i++){cin>>num;v.push_back(num);}//sort排序sort(v.begin() , v.end());int cnt=1; //计数for(int i=0;i<=v.size()-2;i++){if(v[i]==v[i+1]){ //当前元素等于下一个元素,计数+1cnt++;}else if(v[i]!=v[i+1] && cnt==1){ //当前元素不等于下一元素,且计数等于1cout<<v[i];return 0;}else{ //计数重置1cnt=1;}}cout<<v[v.size()-1]; //最大值只出现一次的情况return 0;
}

括弧匹配检验

假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,如 () 或[([][])]等为正确的匹配,[(])或(或 (()))均为错误的匹配。
现在的问题是,要求检验一个给定表达式中的括弧是否正确匹配?
输入一个只包含圆括号和方括号的字符串,判断字符串中的括号是否匹配,匹配就输出 “OK” ,不匹配就输出“Wrong”。输入一个字符串:[([][])],输出:OK。

输入描述

输入仅一行字符(字符个数小于255)。

输出描述

匹配就输出 “OK” ,不匹配就输出“Wrong”。

样例输入 1

[(])
样例输出 1

Wrong

#include<bits/stdc++.h>
using namespace std;
stack<char> s;
char a[257];
int main(){cin>>a;int len = strlen(a);for(int i=0;i<len;i++){//左括号入栈if(a[i]=='(' || a[i]=='[')	s.push(a[i]);else if(s.empty()!=1 && s.top()=='(' && a[i]==')')	s.pop();else if(s.empty()!=1 && s.top()=='[' && a[i]==']')	s.pop();else{cout<<"Wrong";return 0;}}//栈空输出YESif(s.empty())	cout<<"OK";else	cout<<"Wrong";return 0;
}

1628 排队问题

描述

有 n 个人排队,每个人有一个编号 i( 1 ≤ i ≤ n ),从左往右“ 1,2,1,2,…”报数,报到“ 1 ”的人出列,数到“ 2 ”的人立即占到队伍的最右端。报数过程反复进行,直到 n 个人都出列为止。已知 n个人原来的顺序,请写出他们的出列顺序。

输入描述

第一行为 n( n≤100 ),第二行为 n 个编号 i( 1≤i≤n),且 i 不会重复。

输出描述

一行,为他们的出列编号。

样例输入 1

8
1 2 3 4 5 6 7 8
样例输出 1

1 3 5 7 2 6 4 8
样例输入 2

4
2 5 1 3
样例输出 2

2 1 5 3

#include<bits/stdc++.h>
using namespace std;
queue<int> q;
int n,t;
int main(){cin >> n;for(int i=1;i<=n;i++){cin >> t;q.push(t); }int i=0;while(!q.empty()){i++;if(i%2){cout << q.front() << ' ';q.pop(); }else{q.push(q.front());q.pop();}}return 0;
}
关键字:可商用图片素材网站_深圳高端平台_南宁百度seo排名公司_在哪里可以发布自己的广告

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: