当前位置: 首页 > news >正文

单页营销网站后台2345网址导航桌面版

单页营销网站后台,2345网址导航桌面版,竞价网站制作,东莞市住房和城乡建设局网1 map的基本概念 简介: map中所有的元素都是pair pair中第一个元素是key(键),第二个元素是value(值) 所有元素都会根据元素的键值自动排序。本质: map/multimap 属于关联式容器,底…

1 map的基本概念

简介:

map中所有的元素都是pair
pair中第一个元素是key(键),第二个元素是value(值)
所有元素都会根据元素的键值自动排序。

本质:

map/multimap 属于关联式容器,底层是用红黑树实现。

优点:

可以根据key值快速查找数据

map 和multimap 的区别:

map不允许key重复,而multimap允许key重复

2 map的构造和赋值

构造函数

map<T1, T2> mapT; // 默认构造函数
map(const map &st); // 拷贝构造函数

赋值

map& operator=(const map &st); // 重载等号操作符
#include <iostream>
#include <fstream>
#include <string>
#include <map>
using namespace std;//  map的构造和赋值void printMap(map<string,int> &m) {for(map<string,int>::iterator it = m.begin();it!=m.end();it++) {cout << "姓名:" << it->first << " 年龄:" << it->second << endl;}cout << endl;
}void test01() {map<string,int> m;m.insert(pair<string,int>("貂蝉",18));m.insert(pair<string,int>("小乔",19));m.insert(pair<string,int>("孙尚香",17));m.insert(pair<string,int>("甄姬",16));m.insert(pair<string,int>("西施",20));printMap(m);// 拷贝构造函数map<string,int> m2(m);printMap(m2);// 赋值操作map<string,int> m3;m3 = m;printMap(m3);}int main(int argc, char const *argv[]) {test01();return 0;
}

3. map 大小和交换

函数原型:

size(); // 返回 map 中元素的个数
empty(); // 判断 map 是否为空
swap(map x); // 将 x 和当前 map 中的元素进行互换
#include <iostream>
#include <fstream>
#include <string>
#include <map>
using namespace std;//   map 大小和交换void printMap(map<string,int> &m) {for(map<string,int>::iterator it = m.begin();it!=m.end();it++) {cout << "姓名:" << it->first << " 年龄:" << it->second << endl;}cout << endl;
}void test01() {map<string,int> m;m.insert(pair<string,int>("貂蝉",18));m.insert(pair<string,int>("小乔",19));m.insert(pair<string,int>("孙尚香",17));m.insert(pair<string,int>("甄姬",16));m.insert(pair<string,int>("西施",20));cout << "map 大小:" << m.size() << endl;if (m.empty()){cout << "map 为空" << endl;}else{cout << "map 不为空" << endl;}map<string,int> m2;m2.insert(pair<string,int>("妲己",21));m2.insert(pair<string,int>("王昭君",20));m2.insert(pair<string,int>("杨玉环",18));cout << "交换前:" << endl;printMap(m);printMap(m2);cout << "交换后:" << endl;m.swap(m2);printMap(m);printMap(m2);
}int main(int argc, char const *argv[]) {test01();return 0;
}

4.map 插入和删除

函数原型:

inserrt(elem) // 在容器中插入元素
clear() // 删除所有元素
erase(pos) // 删除pos迭代器所指的元素,返回下一个元素的迭代器
erase(beg,end) // 删除迭代器从beg到end的所有元素
erase(key) // 删除key所指的元素
#include <iostream>
#include <fstream>
#include <string>
#include <map>
using namespace std;//   map 插入和删除void printMap(map<string,int> &m) {for(map<string,int>::iterator it = m.begin();it!=m.end();it++) {cout << "姓名:" << it->first << " 年龄:" << it->second << endl;}cout << endl;
}void test01() {map<string,int> m;// 第一种插入方式m.insert(pair<string,int>("貂蝉",18));// 第二种插入方式m.insert(make_pair("小乔",19));// 第三种插入方式m.insert(map<string,int>::value_type("孙尚香",17));// 第四种插入方式m["甄姬"] = 16;m.insert(pair<string,int>("西施",20));// []不建议插入,如果key存在,则修改value,如果key不存在,则插入pair// 可以用[]来访问valuecout << m["甄姬"] << endl;printMap(m);// 删除m.erase(m.begin());printMap(m);m.erase("甄姬"); // 删除key为甄姬的元素printMap(m);m.erase(m.begin(),m.end()); // 删除迭代器区间[begin,end)的元素 相当于清空printMap(m);}int main(int argc, char const *argv[]) {test01();return 0;
}

5. map查找和统计

函数原型:

map<T1,T2>::find(key); // 查找key,如果查到,返回该键的元素的迭代器;如果查不到,返回map.end();
map<T1,T2>::count(key); // 查找key,如果查到,返回1;如果查不到,返回0;
#include <iostream>
#include <fstream>
#include <string>
#include <map>
using namespace std;//   map查找和统计void printMap(map<string,int> &m) {for(map<string,int>::iterator it = m.begin();it!=m.end();it++) {cout << "姓名:" << it->first << " 年龄:" << it->second << endl;}cout << endl;
}void test01() {map<string,int> m;// 第一种插入方式m.insert(pair<string,int>("貂蝉",18));// 第二种插入方式m.insert(make_pair("小乔",19));// 第三种插入方式m.insert(map<string,int>::value_type("孙尚香",17));// 第四种插入方式m["甄姬"] = 16;m.insert(pair<string,int>("西施",20));map<string,int>::iterator pos = m.find("小乔");if(pos != m.end()) {cout << "找到了小乔,年龄为:" << pos->second << endl;}else {cout << "未找到小乔" << endl;}cout << "num  " << m.count("小乔") << endl;}int main(int argc, char const *argv[]) {test01();return 0;
}

6. map容器的排序

利用防函数可以改变排序规则

#include <iostream>
#include <fstream>
#include <string>
#include <map>
using namespace std;// map容器的排序class MyCompare {
public:bool operator()(int v1,int v2) const {return v1 > v2;}
};void printMap(map<int,string,MyCompare> &m) {for(map<int,string,MyCompare>::iterator it = m.begin();it!=m.end();it++) {cout << "id: " << it->first << " 名字: " << it->second << endl;}cout << endl;
}void test01() {map<int,string,MyCompare> m;m.insert(make_pair(1,"西施"));m.insert(make_pair(2,"貂蝉"));m.insert(make_pair(3,"王昭君"));m.insert(make_pair(4,"杨玉环"));m.insert(make_pair(5,"杨贵妃"));printMap(m);}int main(int argc, char const *argv[]) {test01();return 0;
}
http://www.dinnco.com/news/40199.html

相关文章:

  • 揭阳网站建设方案托管地推拉新app推广平台
  • free theme wordpress软件排名优化
  • 网站开发吗和APP软件一样吗百度霸屏推广多少钱一个月
  • 湖南网站推广哪家专业深圳营销型网站设计公司
  • 广州市公需课在哪个网站可以做深圳市昊客网络科技有限公司
  • 网站建设移动端官网免费文案素材网站
  • 怎么区分模板网站和定制网站河南seo外包
  • 武汉网站搜索引擎优化sem和seo是什么职业
  • 购物网站建设市场河源新闻最新消息
  • 做网站卖广告挣几百万恶意点击软件哪个好
  • 济南网站建设选聚搜网络网站seo外包
  • 橙色网站logo 配色深圳网络推广服务公司
  • 新网免费做网站站长工具综合查询系统
  • 网站字体变大代码优化关键词的作用
  • 池州网站建设哪家好浏览器搜索引擎大全
  • 黄山公司做网站免费网站seo排名优化
  • 百度怎样收录网站百度投放广告收费标准
  • 安卓手机怎么制作网站关键词排名优化网站
  • 龙岩做网站改版找哪家公司网站运营公司
  • 潍坊网站优化排名镇江网站
  • 自己做网站租服务器站长工具使用方法
  • 广州专业做网站建设营销渠道管理
  • 网站建设论文的研究方法搭建网站的软件
  • 做百科权威网站有哪些sem推广竞价
  • 平谷网站建设百度竞价开户公司
  • 网站建设审核北京做seo的公司
  • 公司做网站的价格南宁网站建设网络公司
  • 二手商品网站怎么做济南seo网站优化
  • 了解宿迁建设网站网络营销策划的内容
  • 浏览有关小城镇建设的网站 记录长沙seo网络营销推广