下【STL 之速通pair vector list stack queue set map 】

上一篇
【STL 之速通pair vector list stack queue set map 】

queue

note

priority_queue pq;

使用的还是很方便的

c 复制代码
#include <iostream>
#include <queue>

using namespace std;

int main() {
	// Queue 示例
	queue<int> q;
	
	q.push(10);
	q.push(20);
	q.push(30);
	
	cout << "Queue: ";
	while (!q.empty()) {
		cout << q.front() << " ";
		q.pop();
	}
	cout << endl;
	
	// 使用 size() 方法
	cout << "Queue size: " << q.size() << endl;
	
	// Priority Queue 示例
	priority_queue<int> pq;
	
	pq.push(10);
	pq.push(20);
	pq.push(30);
	
	cout << "Priority Queue: ";
	while (!pq.empty()) {
		cout << pq.top() << " ";
		pq.pop();
	}
	cout << endl;
	
	// 使用 size() 方法
	cout << "Priority Queue size: " << pq.size() << endl;
	
	return 0;
}

set

c 复制代码
#include <iostream>
#include <set>


using namespace std;
int main() {

	set<int> mySet;
	
	// 插入元素
	mySet.insert(5);
	mySet.insert(2);
	mySet.insert(8);
	mySet.insert(2); // 重复元素
	
	// 遍历集合
	cout << "Set elements: ";
	for (const auto& elem : mySet) {  
		cout << elem << " ";          
	}
	cout << endl;
	
	// 查找元素
	int searchValue = 5;
	auto it = mySet.find(searchValue); 
	if (it != mySet.end()) {           
		cout << searchValue << " found in the set." << endl;
	} else {                          
		cout << searchValue << " not found in the set." << endl;
	}
	
	
	
	// 移除元素
	int removeValue = 2;
	mySet.erase(removeValue);
	
	// 再次遍历集合
	std::cout << "Set elements after removal: ";
	for (const auto& elem : mySet) {  
		std::cout << elem << " ";      
	}
	std::cout << std::endl;
	
	// 清空集合
	mySet.clear();
	
	// 检查集合是否为空
	if (mySet.empty()) {               
		std::cout << "Set is empty." << std::endl;   
	} else 
		std::cout << "Set is not empty." << std::endl; 
	
	return 0;  
		
}

map

count(key)方法 大多只用来判断是否存在某个键-key

c 复制代码
#include <iostream>
#include <map>
#include <string> // 添加string头文件

using namespace std;

int main() {
	// 创建并初始化map
	map<int, string> myMap = { {1, "Apple"}, {2, "Banana"}, {3, "Orange"} };
	
	// 插入元素
	myMap.insert(make_pair(4, "Grapes"));
	
	// 查找和访问元素
	cout << "Value at key 2: " << myMap[2] << endl;
	
	// 遍历并打印map中的元素
	for (const auto& pair : myMap) {
		cout << "Key: " << pair.first << ", Value: " << pair.second << endl;
	}
	
	// 删除元素
	myMap.erase(3);
	
	// 判断元素是否存在
	if (myMap.count(3) == 0) {
		cout << "Key 3 not found." << endl;
	}
	else cout << "Key 3 is found." << endl;
	
	// 清空map
	myMap.clear();
	
	// 判断map是否为空
	if (myMap.empty()) {
		cout << "Map is empty." << endl;
	}
	
	return 0; // 表示程序正常结束
}

还有

c 复制代码
#include <iostream>
#include <map>
#include <string> // 添加string头文件

using namespace std;

int main() {
	// 创建并初始化multimap
	multimap<int, string> myMultimap = { 
		{1, "Apple"}, 
		{2, "Banana"}, 
		{2, "Orange"} 
	};
	
	// 插入一个新元素
	myMultimap.insert(make_pair(3, "Grapes"));
	
	// 查找并访问键为2的元素,使用equal_range获取范围,并通过循环输出键值对
	auto range = myMultimap.equal_range(2);
	cout << "Elements with key 2:" << endl;
	for (auto it = range.first; it != range.second; ++it) {
		cout << "Key: " << it->first << ", Value: " << it->second << endl;
	}
	
	// 遍历并打印multimap中的所有元素
	cout << "All elements in the multimap:" << endl;
	for (const auto& pair : myMultimap) {
		cout << "Key: " << pair.first << ", Value: " << pair.second << endl;
	}
	
	// 删除一个元素(例如删除键为2的一个元素)
	auto it = myMultimap.find(2);
	if (it != myMultimap.end()) {
		myMultimap.erase(it);
	}
	
	// 判断元素是否存在
	if (myMultimap.count(2) == 0) {
		cout << "Key 2 not found." << endl;
	}
	
	// 清空multimap
	myMultimap.clear();
	
	// 判断multimap是否为空
	if (myMultimap.empty()) {
		cout << "Multimap is empty." << endl;
	}
	
	return 0; // 返回0表示程序正常结束
}

--->>完结撒花

相关推荐
云栖梦泽1 小时前
易语言开发从入门到精通:补充篇·网络编程进阶+实用爬虫开发·API集成·代理IP配置·异步请求·防封禁优化
开发语言
java1234_小锋1 小时前
Java高频面试题:SpringBoot为什么要禁止循环依赖?
java·开发语言·面试
铅笔侠_小龙虾1 小时前
Flutter Demo
开发语言·javascript·flutter
2501_944525541 小时前
Flutter for OpenHarmony 个人理财管理App实战 - 账户详情页面
android·java·开发语言·前端·javascript·flutter
福大大架构师每日一题1 小时前
ComfyUI v0.11.1正式发布:新增开发者专属节点支持、API节点强化、Python 3.14兼容性更新等全方位优化!
开发语言·python
wangdaoyin20101 小时前
若依vue2前后端分离集成flowable
开发语言·前端·javascript
John_ToDebug2 小时前
浏览器内核崩溃深度分析:从 MiniDump 堆栈到 BindOnce UAF 机制(未完待续...)
c++·chrome·windows
向阳开的夏天2 小时前
麒麟V10源码编译QT5.6.3 (x86 & arm64)
开发语言·qt
Evand J2 小时前
【MATLAB例程】TOA和TDOA混合定位,适用于二维平面的高精度定位。锚点数量、位置、测量噪声可自行调节
开发语言·matlab·定位·tdoa
念越3 小时前
数据结构:栈堆
java·开发语言·数据结构