C++关联容器的实际使用场景请列出相关源码
C++关联容器是用来存储键-值对的数据结构,其中键是唯一的,通过键可以快速查找对应的值。下面是一些关联容器的实际使用场景和相关的源码示例:
std::map:用于存储键-值对,并按照键的大小进行排序。常用于构建字典、索引等场景。
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> students;
// 添加键-值对
students[1] = "Alice";
students[2] = "Bob";
students[3] = "Charlie";
// 遍历输出
for (const auto& student : students) {
std::cout << "ID: " << student.first << ", Name: " << student.second << std::endl;
}
// 查找键对应的值
int id = 2;
auto it = students.find(id);
if (it != students.end()) {
std::cout << "Name of student with ID " << id << ": " << it->second << std::endl;
} else {
std::cout << "Student with ID " << id << " not found." << std::endl;
}
return 0;
}
std::set:用于存储唯一的值,并按照值的大小进行排序。常用于查找、去重等场景。
#include <iostream>
#include <set>
int main() {
std::set<int> numbers;
// 添加值
numbers.insert(3);
numbers.insert(1);
numbers.insert(2);
// 遍历输出
for (const auto& number : numbers) {
std::cout << number << " ";
}
std::cout << std::endl;
// 查找值
int target = 2;
auto it = numbers.find(target);
if (it != numbers.end()) {
std::cout << "Found " << target << std::endl;
} else {
std::cout << "Not found " << target << std::endl;
}
return 0;
}
std::unordered_map:用于存储键-值对,并通过哈希函数快速查找值,不保持元素的顺序。常用于高效的查找、索引等场景。
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<int, std::string> students;
// 添加键-值对
students[1] = "Alice";
students[2] = "Bob";
students[3] = "Charlie";
// 遍历输出
for (const auto& student : students) {
std::cout << "ID: " << student.first << ", Name: " << student.second << std::endl;
}
// 查找键对应的值
int id = 2;
auto it = students.find(id);
if (it != students.end()) {
std::cout << "Name of student with ID " << id << ": " << it->second << std::endl;
} else {
std::cout << "Student with ID " << id << " not found." << std::endl;
}
return 0;
}
std::unordered_set:用于存储唯一的值,并通过哈希函数快速查找值,不保持元素的顺序。常用于高效的查找、去重等场景。
#include <iostream>
#include <unordered_set>
int main() {
std::unordered_set<int> numbers;
// 添加值
numbers.insert(3);
numbers.insert(1);
numbers.insert(2);
// 遍历输出
for (const auto& number : numbers) {
std::cout << number << " ";
}
std::cout << std::endl;
// 查找值
int target = 2;
auto it = numbers.find(target);
if (it != numbers.end()) {
std::cout << "Found " << target << std::endl;
} else {
std::cout << "Not found " << target << std::endl;
}
return 0;
}
这些示例展示了C++关联容器的一些常见使用场景,包括存储键-值对并按照键进行排序的场景、存储唯一值并进行快速查找的场景等。具体的使用场景还取决于具体的需求和业务逻辑
原文地址: https://www.cveoy.top/t/topic/hXkt 著作权归作者所有。请勿转载和采集!