用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c++代码库

stl中map的使用

2018-10-19 作者:暗夜的彩虹举报

[c++]代码库

#include<bits/stdc++.h>
using namespace std;
//typedef pair<const Key, T> value_type;
bool fncomp(char a, char b)
{    return a<b; 	}
struct classcomp{
	bool operator () (const char& a,const char &b)
	{	return a<b;     }
};
int main() 
{
	map<char ,int >my_map;// 直接定义
	// 复制定义
	map<char ,int >second(my_map);
	// 迭代器定义
	map<char ,int >third(my_map.begin(),my_map.end());
	map<char ,int ,classcomp>fourth;// 重新定义compare对象,对()重载
	// 通过函数指针
	// bool(*fn_pt)(char, char) = fncomp;
    // map<char, int, bool(*)(char, char)> fifth(fn_pt);
//=======================================================
	my_map['a']=1000;// 赋值
	
	my_map['b']=1;
	my_map['c']=10;
	map<char ,int >::key_compare key_comp;
	map<char ,int >::iterator t;// 指针
	t=my_map.begin();
	//遍历一遍,first第一个 second第二个
	for(;t!=my_map.end();t++)
		//t是指针,用->
		cout<<t->first<<" "<<t->second<<endl;
	cout<<"========================"<<endl;
//====================================================
	//插入元素
	my_map.insert(pair<char ,int >('x',101));
	my_map.insert(pair<char ,int >('p',99));
	cout<<"x=>"<<my_map.find('x')->second<<endl;
	cout<<"p=>"<<my_map.find('p')->second<<endl;
	cout<<"========================"<<endl;
//=====================================================
	//compare参数使用
	key_comp=my_map.key_comp();
	 cout<<"mymap contains:\n";
    // 迭代器反向遍历的起始位置
    char highest=my_map.rbegin()->first;     // key value of last element
    t=my_map.begin();
    do {
        cout<<(*t).first<<" => "<<(*t).second<<endl;
    } while(key_comp((*t++).first,highest));
    cout << endl;
  //======================================================
    return 0;
}


分享到:
更多

网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。