网站前置审批,h5页面制作软件thinkphp,商城网站建设最好的公司,做网站的需要什么软件C 中 map 提供的是一种键值对容器#xff0c;里面的数据都是成对出现的,如下图#xff1a;每一对中的第一个值称之为关键字(key)#xff0c;每个关键字只能在 map 中出现一次#xff1b;第二个称之为该关键字的对应值。在一些程序中建立一个 map 可以起到事半功倍的效果 中 map 提供的是一种键值对容器里面的数据都是成对出现的,如下图每一对中的第一个值称之为关键字(key)每个关键字只能在 map 中出现一次第二个称之为该关键字的对应值。在一些程序中建立一个 map 可以起到事半功倍的效果本文为大家总结了 map 的一些基本简单的操作Map的使用需要导入头文件#include // STL头文件没有扩展名.hmap 对象是一个模版类需要关键字和存储对象两个模版参数std::map person;可以对模版进行类型定义使其使用方便typedef std::map MAP_INI_STRING;MAP_INI_STRING person;Map 的构造1、map 最基本的构造函数std::map mapPerson;2、map 添加数据1) insert 函数插入 pair 数据std::map int , std::string mapPerson;mapPerson.insert(pair int,string (1,Jim));2)insert 函数插入 value_type 数据mapPerson.insert(std::map int, std::string ::value_type (2, Tom));3)用数组方式插入数据mapPerson[3] Jerry;3、Map 数据的遍历三种最常用的遍历方法1)前向迭代器std::map int ,std::string ::iterator it;std::map int ,std::string ::iterator itEnd;it mapPerson.begin();itEnd mapPerson.end();while (it ! itEnd) {coutfirstsecondit;}2)反向迭代器std::map int, string ::reverse_iterator iter;for(iter mapPerson.rbegin(); iter ! mapPerson.rend(); iter)coutfirstsecond3)数组形式mapPerson.insert(std::map::value_type (1, Tom));mapPerson[2] Jim;mapPerson[3] Jerry;int nSize mapPerson.size();for(int n 1; n nSize; n)qDebug():fromstdstring三种都是遍历建议使用前向迭代器慎用使用数组形成(角标开始位置谨慎)。4、map 中元素的查找find() 函数返回一个迭代器指向键值为 key 的元素如果没找到就返回指向 map 尾部的迭代器。map ::iterator l_it;;l_it maplive.find(112);if(l_it maplive.end())coutelse cout5、map 中元素的删除如果删除 112iterator erase(iterator it);//通过一个条目对象删除iterator erase(iterator firstiterator last)//删除一个范围size_type erase(const Keykey);//通过关键字删除clear()//就相当于enumMap.erase(enumMap.begin(),enumMap.end());6、map 中 swap 的用法Map 中的 swap 不是一个容器中的元素交换而是两个容器交换示例#include #include using namespace std;int main( ){map int, int m1, m2, m3;map int, int ::iterator m1_Iter;m1.insert ( pair int, int ( 1, 10 ) );m1.insert ( pair int, int ( 2, 20 ) );m1.insert ( pair int, int ( 3, 30 ) );m2.insert ( pair int, int ( 10, 100 ) );m2.insert ( pair int, int ( 20, 200 ) );m3.insert ( pair int, int ( 30, 300 ) );cout The original map m1 is:;for ( m1_Iter m1.begin( ); m1_Iter ! m1.end( ); m1_Iter )cout m1_Iter-second;cout . endl;// This is the member function version of swap//m2 is said to be the argument map; m1 the target mapm1.swap( m2 );cout After swapping with m2, map m1 is:;for ( m1_Iter m1.begin( ); m1_Iter ! m1.end( ); m1_Iter )cout m1_Iter - second;cout . endl;cout After swapping with m2, map m2 is:;for ( m1_Iter m2.begin( ); m1_Iter ! m2.end( ); m1_Iter )cout m1_Iter - second;cout . endl;// This is the specialized template version of swapswap( m1, m3 );cout After swapping with m3, map m1 is:;for ( m1_Iter m1.begin( ); m1_Iter ! m1.end( ); m1_Iter )cout m1_Iter - second;cout . endl;}7、map 的 sort 问题Map 中的元素是自动按 key 升序排序,所以不能对 map 用 sort 函数示例#include #include using namespace std;int main( ){map int, int m1;map int, int ::iterator m1_Iter;m1.insert ( pair int, int ( 1, 20 ) );m1.insert ( pair int, int ( 4, 40 ) );m1.insert ( pair int, int ( 3, 60 ) );m1.insert ( pair int, int ( 2, 50 ) );m1.insert ( pair int, int ( 6, 40 ) );m1.insert ( pair int, int ( 7, 30 ) );cout The original map m1 is:for ( m1_Iter m1.begin( ); m1_Iter ! m1.end( ); m1_Iter )cout m1_Iter-firstsecond}8、map 的基本操作函数C Maps 是一种关联式容器包含“关键字/值”对begin() 返回指向 map 头部的迭代器clear() 删除所有元素begin() 返回指向 map 头部的迭代器clear() 删除所有元素count() 返回指定元素出现的次数empty() 如果 map 为空则返回 trueend() 返回指向 map 末尾的迭代器equal_range() 返回特殊条目的迭代器对erase() 删除一个元素find() 查找一个元素get_allocator() 返回map的配置器insert() 插入元素key_comp() 返回比较元素key的函数lower_bound() 返回键值给定元素的第一个位置max_size() 返回可以容纳的最大元素个数rbegin() 返回一个指向map尾部的逆向迭代器rend() 返回一个指向map头部的逆向迭代器size() 返回map中元素的个数swap() 交换两个mapupper_bound() 返回键值给定元素的第一个位置value_comp() 返回比较元素value的函数