工具函数模板题(蓝桥杯 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;
}
相关文章:

工具函数模板题(蓝桥杯 C++ 代码 注解)
目录 一、Vector容器: 二、Queue队列 三、Map映射 四、题目(快递分拣 vector): 代码: 五、题目(CLZ银行问题 queue): 代码: 六、题目(费里的语言 map&…...
Ansible playbook 简介 使用场景
Ansible playbook 简介 playbook 是 ansible 用于配置,部署,和管理被控节点的剧本。 通过 playbook 的详细描述,执行其中的一系列 tasks ,可以让远端主机达到预期的状态。playbook 就像 Ansible 控制器给被控节点列出的的一系…...
TS总结10、ts的 class 类型(配置项strictPropertyInitialization、非空断言)
一、简介 1.类(class)是面向对象编程的基本构件,封装了属性和方法 1.1、属性的类型:类的属性可以在顶层声明,也可以在构造方法内部声明,如果不给出类型;TypeScript 会认为x和y的类型都是any&a…...

leetcode 热题 100_找到字符串中所有字母异位词
题解一: 滑动窗口:类似于字符串匹配,但匹配异位词需要包含相同的字母及个数,可以分别用两个数组存储字符串s滑动窗口和字符串p的字母及个数,再用Array.equals()进行比对。对于s.length()<p.length()的情况需要特判。…...
百度百科数据爬取 python 词条数据获取
最近需要补充一些电力名词的解释,尤其是文字相关内容。百度百科上的词条质量有差异,因此我们需要先手工选择一些高质量词条。 假设我们选择了互感器页面中的仪用变压器词条,首先: import requests from bs4 import BeautifulS…...
为不同文章形式选择不同的WordPress文章模板
在写文章的时候选择不同的文章形式,然后打开文章的时候会调用不同文章形式的模板。比如,文章形式为video ,就调用single-video.php模板,其它文章形式类似,可以添加多个文章样式。 //为不同文章形式的内容添加不同的si…...
MySQL存储引擎及索引机制
大家好我是咕噜美乐蒂,很高兴又和大家见面了! MySQL 存储引擎是指 MySQL 数据库管理系统中负责存储和检索数据的组件,它们可以影响数据的存储方式、事务支持、并发性能等方面。而索引则是用于加速检索数据库表中数据的数据结构。下面我将分别…...
Leetcode算法题
二进制求和 给两个字符串a和b,以二进制字符串的形式返回它们的和。 示例 1: 输入:a “11”, b “1” 输出:“100” 示例 2: 输入:a “1010”, b “1011” 输出:“10101” 提示: 1 <…...

数据结构之七大排序
𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇:Solitary_walk ⸝⋆ ━━━┓ - 个性标签 - :来于“云”的“羽球人”。…...

【MySQL】数据库中常用的函数
目录 聚合函数COUNT()函数的多种用法COUNT(*)COUNT(主键)COUNT(1)COUNT(常量)COUNT(非主键)COUNT(distinct(字段)) COUNT()函数小结 字符函数length(str)函数:获取参数值的字节个数concat(str1,str2,...)函数:字符串拼接upper(str)、lower(str)函数:大小…...
嵌入式面试常见问题(四)
1.在基于Linux的网络套接字编程中,如果需要创建一个IPv4的网络套接字,应该在socket函数中指定domain参数为AF_INET 解析: socket()函数创建套接字 函数原型:int socket(int domain, int type, int protocol); domain:协议簇&…...

用Java在Spring Boot项目中,如何传递来传递一个对象(多个参数??
前言: 在前面我们已经了解到,Spring Boot项目中,可以传递一个参数,或者多个参数,但是,随着参数的增加,咱们总不能每增加一个参数,就重新写一段代码吧??这样显…...

如何利用ChatGPT搞科研?论文检索、写作、基金润色、数据分析、科研绘图(全球地图、植被图、箱型图、雷达图、玫瑰图、气泡图、森林图等)
以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮,可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…...

一命通关二分搜索
二分法 简介 和双指针一样,二分法也是一种优化方法,或者说二分法就是双指针的一类。不过,二分法的思想比双指针诞生更早也更广泛,在我们日常生活里也无时不刻在使用二分的思想。 比如我们想回顾某些影片,但是只记得…...

串联所有单词的子串
题目链接 串联所有单词的子串 题目描述 注意点 words[i] 和 s 由小写英文字母组成1 < words.length < 5000可以以 任意顺序 返回答案words中所有字符串长度相同 解答思路 根据滑动窗口哈希表解决本题,哈希表存储words中所有的单词及单词的出现次数&#…...

【会议征稿通知】第四届经济发展与商业文化国际学术会议(ICEDBC2024)
第四届经济发展与商业文化国际学术会议(ICEDBC2024) The 4th International Conference on Economic Development and Business Culture (ICEDBC 2024) 第四届经济发展与商业文化国际学术会议(ICEDBC2024)将于2024年6月21-23日在…...

回溯算法套路③排列型回溯+N皇后【基础算法精讲 16】
46 . 全排列 链接 : . - 力扣(LeetCode) 思路 : 那么怎么确定选了那个数呢? 这里设置一个used表示i选没选过 ; class Solution { public:vector<vector<int>> ans;vector<int> path;void backtrack(vector<int>nums,vect…...
MyBatis-Plus 框架中的自定义元对象处理器
目录 一、代码展示二、代码解读 一、代码展示 package com.minster.yanapi.handler;import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component;import java.util…...
Node.js_基础知识(fs模块 - 文件操作)
写入 文件操作 流式写入:fs.createWriteStream(path[, options]) 可以减少打开关闭文件的次数适用于:大文件写入、频繁写入参数说明: path:文件路径文件夹操作: 调用mkdir方法:fs.mkdir(./a/b/c, err => {}) 递归创建文件夹:加参数recursive fs.mkdir(./a/b/c, {recu…...

基于C#开发OPC DA客户端——搭建KEPServerEX服务
简介 OPC DA (OLE for Process Control Data Access) 是一种工业自动化领域中的通信协议标准,它定义了应用程序如何访问由OPC服务器提供的过程控制数据。OPC DA标准允许软件应用程序(客户端)从OPC服务器读取实时数据或向服务器写入数据&…...

华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...

智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...

【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...
解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist
现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...