工具函数模板题(蓝桥杯 C++ 代码 注解)

目录

一、Vector容器:

二、Queue队列

三、Map映射

 四、题目(快递分拣 vector):

代码:

五、题目(CLZ银行问题 queue):

代码:

六、题目(费里的语言 map):

代码:

一、Vector容器:

Vector 的主要作用就是可变长度的数组,就把他当成数组使用即可。

#include <vector>   //头文件
vector<int> a;      //定义了一个int类型的vector容器a
vector<int> b[100]; //定义了一个int类型的vector容器b 相当于二维数组
struct rec
{···
};
vector<rec> c;            //定义了一个rec类型的vector容器ca.size()           //返回实际长度(元素个数),O(1)复杂度
a.empty()      //容器为空返回1,否则返回0,O(1)复杂度
a.clear()      //把vector清空
a.begin()      //返回指向第一个元素的迭代器,*a.begin()与a[0]作用相同
a.end()        //越界访问,指向vector尾部,指向第n个元素再往后的边界
a.front()      //返回第一个元素的值,等价于*a.begin和a[0]
a.back()       //返回最后一个元素的值,等价于*--a.end()和a[size()-1]
a.push_back(x) //把元素x插入vector尾部
a.pop_back()   //删除vector中最后一个元素//遍历的方法一:for ( vector<int>::iterator it=a.begin() ; it!=a.end() ; it++ )cout<<*iterator<<endl;//遍历的方法二:
for( int i=0;i<a.size();i++) cout<<a[i]<<endl;

二、Queue队列

queue<string> myqueue;
queue<int> myqueue_int;front()://返回 queue 中第一个元素的引用。
back()://返回 queue 中最后一个元素的引用。
push(const T& obj)://在 queue 的尾部添加一个元素的副本。
pop()://删除 queue 中的第一个元素。
size()://返回 queue 中元素的个数。
empty()://如果 queue 中没有元素的话,返回 true。

三、Map映射

map 是一个关联容器,它提供一对一的 hash

  • 第一个可以称为关键字(key),每个关键字只能在 map 中出现一次
  • 第二个可能称为该关键字的值(value)
map<char, int> mymap1;
map<string, int> mymap2;int map.size();//查询map中有多少对元素
bool empty();// 查询map是否为空插入: map.insert(make_pair(key,value));//或者map.insert(pair<char, int>(key, value))//或者map[key]=value取值;map<int, string> map;//如果map中没有关键字2233,使用[]取值会导致插入
//因此,下面语句不会报错,但会使得输出结果结果为空
cout<<map[2233]<<endl;//但是使用at会进行关键字检查,因此下面语句会报错
map.at(2016) = "Bob";遍历:
map<string, string>::iterator it;
for (it = mapSet.begin(); it != mapSet.end(); ++it)
{cout << "key" << it->first << endl;cout << "value" << it->second << endl;
}查找:
m.count(key)://由于map不包含重复的key,因此m.count(key)取值为0,或者1,表示是否包含。
m.find(key)://返回迭代器,判断是否存在。

 四、题目(快递分拣 vector):

代码:

#include<iostream>
#include<vector>
using namespace std;
vector<string> city;
vector<string> nums[1010];
int n;
int Find(string name)
{for (int i = 0; i < city.size(); i++){if (city[i] == name)//找到该城市return i;//返回该城市的所属nums的vector里}return -1;
}
int main()
{cin >> n;for (int i = 0; i < n; i++){string num1, name1;cin >> num1 >> name1;if (Find(name1)== -1)//找不到该城市名{city.push_back(name1);//新添城市名nums[city.size() - 1].push_back(num1);//将号码存到新城市所属nums的vector里}else//找到该城市名{nums[Find(name1)].push_back(num1);//将该号码存到该城市所属nums的vector里}}for (int i = 0; i < city.size(); i++){cout << city[i] << " " << nums[i].size() << endl;//输出城市,输出城市有的号码个数for (int j = 0; j < nums[i].size(); j++){cout << nums[i][j] << endl;//输出城市有的号码}}
}

五、题目(CLZ银行问题 queue):

代码:

#include<iostream>
#include<queue>
using namespace std;
queue<string> vip;
queue<string> no_vip;
int main()
{int m;cin >> m;while (m--){string s,name,choice;cin >> s;if (s == "IN")//入队{cin >> name >> choice;if (choice == "V")//入vip队列vip.push(name);else//否则入普通队列no_vip.push(name);}else{cin >> choice;if (choice == "V")//vip队列出队vip.pop();else//普通队列出队no_vip.pop();}}while (vip.size())//输出vip队列{cout << vip.front() << endl;vip.pop();}while (no_vip.size())//输出普通队列{cout << no_vip.front() << endl;no_vip.pop();}
}

六、题目(费里的语言 map):

代码:

#include<iostream>
#include<map>
using namespace std;
int main()
{int n;string ans = "NO";map<string, bool> mp;cin >> n;for (int i = 0; i < n; i++){string word;cin >> word;if (mp.count(word))//不为0说明已经有了,记录答案并跳出{ans = word;break;}elsemp[word]=1;//没有,则将其加入,标为1}cout << ans;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/513511.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Spring底层原理高级进阶】Spring Kafka:实时数据流处理,让业务风起云涌!️

&#x1f389;&#x1f389;欢迎光临&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;特别推荐给大家我的最新专栏《Spring 狂野之旅&#xff1a;从入门到入魔》 &#x1f680; 本…

三星成功研发出业界首款12层堆叠HBM3E

三星电子有限公司成功研发出业界首款12层堆叠HBM3E DRAM——HBM3E 12H&#xff0c;这是迄今为止容量最大的HBM产品。这款新型HBM3E 12H内存模块提供了高达1,280GB/s的史上最高带宽&#xff0c;并拥有36GB的存储容量&#xff0c;相较于之前的8层堆叠HBM3 8H&#xff0c;在带宽和…

记录一次排查负载均衡不能创建的排查过程

故障现象&#xff0c;某云上&#xff0c;运维同事在创建负载均衡的时候&#xff0c;发现可以创建资源&#xff0c;但是创建完之后&#xff0c;不显示对应的负载均衡。 创建负载均衡时候&#xff0c;按f12发现console有如下报错 后来请后端网络同事排查日志发现&#xff0c;是后…

《PyTorch深度学习实践》第十一讲卷积神经网络进阶

一、 1、卷积核超参数选择困难&#xff0c;自动找到卷积的最佳组合。 2、1x1卷积核&#xff0c;不同通道的信息融合。使用1x1卷积核虽然参数量增加了&#xff0c;但是能够显著的降低计算量(operations) 3、Inception Moudel由4个分支组成&#xff0c;要分清哪些是在Init里定义…

汽车后视镜反射率检测仪厂家

随着汽车工业的快速发展&#xff0c;汽车后视镜作为驾驶员观察车辆周围环境的重要工具&#xff0c;其性能和质量对于交通安全至关重要。汽车后视镜的反射率检测仪是一种用于检测汽车后视镜反射性能的专业设备&#xff0c;其重要性不言而喻。本文将重点介绍汽车后视镜反射率检测…

猜数字小游戏

目录 java&#xff1a; c语言&#xff1a; java编写&#xff1a; 首先我们要获取随机数 java帮我们写好了一个类叫Random&#xff0c;这个类就可以生成一个随机数 那我们该如何使用Random类呢&#xff1f; 1、导包———Random这个类在哪呢&#xff08;导包必须出现在类定义…

短视频矩阵系统--抖去推---年后技术还能迭代更新开发运营吗?

短视频矩阵系统#短视频矩阵系统已经开发3年&#xff0c;年后这个市场还能继续搞吗&#xff1f;目前市面上开发短视频账号矩阵系统的源头公司已经不多了吧&#xff0c;或者说都已经被市场被官方平台的政策影响的不做了吧&#xff0c;做了3年多的矩阵系统开发到现在真的是心里没有…

二叉树——700. 二叉搜索树中的搜索、98. 验证二叉搜索树

二叉搜索树中的搜索 给定二叉搜索树&#xff08;BST&#xff09;的根节点 root 和一个整数值 val。 你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在&#xff0c;则返回 null 。 示例 1: 输入&#xff1a;root [4,2,7,1,3], val 2 …

2024全国水科技大会暨新能源及电子行业废水论坛(十一)

一、会议背景 为深入学习贯彻《中共中央、国务院关于全面推进美丽中国建设的意见》&#xff0c;全面贯彻实施《固体废物污染环境防治法》、《“十四五”全国城市基础设施建设规划》&#xff0c;推进我国污泥处理工程建设&#xff0c;提高处理产物资源化利用水平&#xff0c;促进…

分享两会焦点热词,深化AI多场景应用,推动大模型垂直化与产业化

大模型、机器人、智能制造、自动驾驶……过去一年&#xff0c;人工智能频上头条&#xff0c;也成为今年北京两会上的热词。全球新一轮技术变革加速来临&#xff0c;大模型作为人工智能发展的核心引擎&#xff0c;正引发一场全新的工业革命。 在这一关键时期&#xff0c;全国政协…

7.2.2 用坐标表示平移 教案设计及课堂检测设计

【学习目标】 1&#xff0e;掌握坐标变化和图形平移的关系&#xff0c;能用点的平移规律求点平移后的点的坐标&#xff0e; 2&#xff0e;会按要求画出平移后的图形&#xff0c;并写出顶点的坐标&#xff0e;

2024上教师资格证模考大赛(第六季)信息技术学科知识与教学能力

2.利用搜索引擎在网上搜索信息&#xff0c;有时需要增大搜索范围以便于准确查找需要的信息&#xff0c;下列能增大搜索范围的做法是&#xff08; B&#xff09;。 A使用逻辑控制符and&#xff0c;增加搜索关键词 B减少所用的关键词&#xff0c;减少搜索条件 C使用多个关键词&…