一、srand()
最近在做题的时候接触到了这个,srand()用来初始化随机数生成器的种子。
time(NULL)
函数:
time(NULL)
函数返回当前时间的秒数(自1970年1月1日以来的秒数)。- 每次调用
time(NULL)
都会返回一个不同的值,因为时间不断流逝。- srand(time(NULL))
二、unordered_map
unordered_map
是 C++ 标准库中的一个关联容器,提供了一种将键值对映射起来的数据结构,其中的元素是无序的。
(1)定义
std::unordered_map<KeyType, ValueType> myMap;
(2) 插入单个键值对
myMap.insert(std::make_pair(key, value));
//也可以使用“[]” 进行插入操作
myMap[key] = value;
(3)插入多个键值对
myMap.insert({{key1, value1}, {key2, value2}, ...});
(4)访问元素
ValueType value = myMap[key];
//使用at()方法,如果不存在时抛出异常
ValueType value = myMap.at(key);
//count()方法用于判断指定键是否存在
size_t count(const KeyType& key) const;
(5)查找元素
使用 find()
方法查找指定键的位置,如果找到则返回指向该键值对的迭代器,否则返回 myMap.end()
:
auto it = myMap.find(key);
if (it != myMap.end()) {
// 键存在
} else {
// 键不存在
}
(6)删除元素
//使用erase()删除指定键值对
myMap.erase(key);
//使用clear()清空整个unordered_map
myMap.clear();
(7) 遍历元素
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
KeyType key = it->first;
ValueType value = it->second;
// 使用 key 和 value
}//范围遍历
for (const auto& pair : myMap) {
KeyType key = pair.first;
ValueType value = pair.second;
// 使用 key 和 value
}
(8)大小和空判断
//获取键值对的数量
size_t size = myMap.size();
//使用empty()方法检查unordered_map是否为空
if (myMap.empty()) {
// unordered_map 为空
} else {
// unordered_map 不为空
}