STL map用法及其常用函数介绍

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
#include <map>	/*引用map头文件*/ 
#include <string>	/*C++ string头文件*/ 
using namespace std;
int main()
{
	/*
	le.clear() 	清空
	le.begin() 	起始的键
	le.end()	末尾键加一 
	le.size() 	返回容器的大小
	le.count( char C )	判断关键字是否出现, 返回值为0或1
	le.empty()	判断是否为空
	le.insert(pair<int,string>(102,"aclive"));	插入元素 
   	le.live.insert(map<int,string>::value_type(321,"hai"));
   	le.lower_bound()    返回键值>=给定元素的第一个位置
   	le.upper_bound()     返回键值>给定元素的第一个位置
   	swap()            交换两个map	用法 m1.swap( m2 ) ;
   	
   	le.find(char C)
	   	来定位数据出现位置,它返回的一个迭代器,
	   	当数据出现时,它返回数据所在位置的迭代器
	   	如果map中没有要查找的数据,它返回的迭代器等于M.end()函数返回的迭代器。
   	
	le.erase(const key_type&__x)	删除等于某个键值的元素
	le.erase(iterator __first,iterator __last)	删除一个迭代区间上的所有元素
	le.erase(iterator __positation)	删除某个迭代器位置上的元素 
	it = erase() 成员函数返回下一个元素的迭代器
	*/
	map<char,int> le;	/*定义一个map容器*/ 
	map<char,int> :: iterator  it;	/*map迭代器*/ 
	char ch;
	string str;	/*字符串指针*/ 
	string letter;	
	string::iterator i;	/*字符串迭代器*/ 
	
	/*abcdefghijklmnopqrstuvwxyz*/
	letter = "ABCDWFGHIJKLMNOPQRSTUVWXYZ";
	while( cin>>str ){
		for( i = letter.begin(); i != letter.end(); i++ ){
			le[*i];		/*在 le里添加一个*i的键,其值为0*/ 
		}
		for( i = str.begin(); i != str.end(); i++ ){
			if( *i >= 'A' && *i <= 'Z' )
				le[*i] ++;	/*访问到键后指向的值加一*/ 
			else
				le[*i-( 'a' - 'A' )] ++;
		}
		
		
		/*迭代器输出*/ 
		//le.erase( 'A' );	/*删除键为A的元素*/
		//le.erase( le.begin(), le.end() );
		if( le.empty() )
			printf("空\n");  
		for( it = le.begin(); it != le.end(); it++ ){
			cout<<it->first<<':'<<it->second<<endl; 	
		}
		if( le.count('A') )
			printf("YES le.count('A') = %d\n", le.count('A') );
		else
			printf("NO\n");
		le.clear();
	}
	 
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STL(Standard Template Library)提供了一个名为`std::map`的关联容器,它基于红黑树实现,用于存储键值对,并按照键的顺序进行排序。下面是`std::map`容器的一些常用方法: 1. 插入元素: ```cpp std::map<Key, Value> myMap; myMap.insert(std::make_pair(key, value)); // 使用insert方法插入键值对 myMap[key] = value; // 使用下标操作符[]插入键值对,如果键已存在,则会更新值 ``` 2. 删除元素: ```cpp myMap.erase(key); // 根据键删除元素 myMap.clear(); // 清空所有元素 ``` 3. 访问元素: ```cpp Value value = myMap[key]; // 使用下标操作符[]访问指定键对应的值 auto it = myMap.find(key); // 使用find方法查找指定键的迭代器 if (it != myMap.end()) { Value value = it->second; // 通过迭代器访问指定键对应的值 } ``` 4. 遍历容器: ```cpp for (const auto& pair : myMap) { Key key = pair.first; // 键 Value value = pair.second; // 值 // 其他操作 } ``` 5. 判断元素是否存在: ```cpp if (myMap.count(key) > 0) { // 键存在 } ``` 6. 获取容器大小和判断容器是否为空: ```cpp size_t size = myMap.size(); // 获取容器中键值对的个数 bool isEmpty = myMap.empty(); // 判断容器是否为空 ``` 这些是`std::map`容器的一些常用方法,还有其他一些方法和成员函数可以进一步扩展其功能。你可以参考C++标准库的文档以获取更详细的信息。 希望对你有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值