1012: 数字

建议重做 这题用了hash,我已经基本忘掉了,

#include <bits/stdc++.h>
using namespace std;
const int N=1010;
char s[N];

int main(){
	while(scanf("%s",s+1)!=EOF){
		unordered_map<int,int> mp;
		int l=strlen(s+1);
		for(int i=1;i<=l;i++){
			mp[s[i]-'0']++;
		}
		int m_id=0;
		for(int i=1;i<10;i++)
		{	//cout<<i<<"="<<mp[i]<<endl;
			if(mp[m_id]<mp[i])
				m_id=i;
		}
		printf("%d\n",m_id);
	}
}

好的,这里为您详细介绍 std::map 和 std::unordered_map 的访问方式和常用函数。

首先,请确保在代码开头包含了对应的头文件:
std::map: #include
std::unordered_map: #include

共同的访问与常用函数

元素访问

operator[] (下标操作符):
功能: 访问指定键的值。如果该键不存在,会创建一个新的键值对,并将值初始化为其类型的默认值(例如 int 为 0,string 为空串等)。
示例:
#include
#include
#include

int main() {
std::map myMap;
std::unordered_map myUnorderedMap;

// 访问不存在的键,会创建并初始化为0
myMap['a']++; // myMap['a'] 现在是 1
myUnorderedMap['b'] += 10; // myUnorderedMap['b'] 现在是 10

// 访问已存在的键
std::cout second << std::endl;
} else {
std::cout << "Key 'a' not found." << std::endl;
}

.count(key):
功能: 计算指定键的元素数量。由于 map 和 unordered_map 不允许重复键,所以该函数返回 0(不存在)或 1(存在)。
示例:
if (myMap.count('e')) {
std::cout << "Key 'e' exists." << std::endl;
} else {
std::cout << "Key 'e' does not exist." << std::endl;
}

元素删除

.erase(key):
功能: 删除指定键的元素。返回被删除元素的数量(0 或 1)。
示例:
myMap.erase('a'); // 删除键为 'a' 的元素

.erase(iterator):
功能: 删除迭代器指向的元素。
示例:
auto it = myMap.find('b');
if (it != myMap.end()) {
myMap.erase(it); // 删除找到的元素
}

容量与状态

.size():
功能: 返回容器中的元素数量。
示例: std::cout << "Size: " << myMap.size() << std::endl;

.empty():
功能: 检查容器是否为空。若为空则返回 true。
示例: if (myMap.empty()) { /* ... */ }

容器操作

.clear():
功能: 清空容器,删除所有元素。

std::map 特有的函数

由于 std::map 是有序的,它提供了一些基于排序特性的额外函数:

.begin() / .end():
功能: 返回指向容器中第一个和最后一个元素之后位置的迭代器。对于 map,begin() 指向键最小的元素,end() 指向键最大的元素之后的位置。迭代器遍历时,元素按键的升序访问。

.lower_bound(key):
功能: 返回一个指向首个不小于(即大于或等于)key 的元素的迭代器。如果 key 不存在,它会指向下一个存在的更大键的元素;如果所有元素都小于 key,则返回 end()。

.upper_bound(key):
功能: 返回一个指向首个大于 key 的元素的迭代器。

.equal_range(key):
功能: 返回一个 std::pair,包含 lower_bound 和 upper_bound 的结果,可用于获取所有等于 key 的元素范围(在 map 中,这个范围最多只有一个元素)。

posted @ 2026-03-14 15:38  peter_shen  阅读(17)  评论(0)    收藏  举报