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

怎么给网站做搜索功能如何优化seo技巧

怎么给网站做搜索功能,如何优化seo技巧,门窗东莞网站建设技术支持,做网站接电话一般要会什么问题一、介绍 在C的map / multimap容器中#xff0c;所有的元素均是pair类型#xff08;有关pair类型可以参考我之前写的 《C的set / multiset容器》的3.2中有介绍到#xff09;。 每对pair的第一个元素被称为关键字key#xff0c;第二个元素被称为值value。因此#xff0c;ma…一、介绍 在C的map / multimap容器中所有的元素均是pair类型有关pair类型可以参考我之前写的 《C的set / multiset容器》的3.2中有介绍到。 每对pair的第一个元素被称为关键字key第二个元素被称为值value。因此map的元素也被称为键值对。 将元素插入map / multimap后元素会根据关键字的排序规则自动排序。 二、数据结构 map / multimap容器均属于关联式容器底层使用平衡二叉树 / 红黑树实现。 三、map与multimap的区别 map与multimap的区别在于是否可以出现重复的key。 map不允许同一个map中出现重复keymultimap允许同一个map中出现重复ke 由于二者之间除此以外并无差别因此下文例子均基于map容器的使用示例。 四、map的使用 map在使用前请包含头文件#includemap。此外为了便于观察示例结果以下示例均使用自己编写的printMap函数打印map所有键值对信息。 //打印map所有键值对 void printMap(mapint, char m) {//判空if (m.empty()) {cout The map is empty now. endl;return;}for (mapint, char::iterator it m.begin(); it ! m.end(); it) {cout it-first , it-second endl;} } 4.1 map初始化 map的初始化可以使用构造函数与运算符实现 声明解释mapT1, T2 m; 构造函数初始化一个空map m的关键字key类型为T1值value的类型为T2 mapT1, T2 m(mapT1, T2 m1);拷贝构造函数用m1初始化moperator(mapT1, T2 m1) 重载的运算符 有关重载运算符可以看我之前写的《C重载运算符》 mapint, char m0;//初始化一个空mapkey为int类型value为char类型 mapint, char m1(m0);//拷贝构造函数 mapint, char m2 m0;//使用重载的等号运算符 4.2 map容量与大小 声明解释empty()判断map是否为空size()返回map中键值对的数目 mapint, char m0; for (int i 0; i 10; i) {//i作为key小写字母作为valuem0.insert(pairint, char(i, a i)); } //cout m0 : endl; printMap(m0);cout boolalpha m0.empty() endl;//false cout m0.size() endl;//10 程序的执行结果如下所示 4.3 map交换元素 声明解释swap(mapT1, T2 m1)交换当前map与m1的全部元素 mapint, char m0; mapint, char m1; for (int i 0; i 10; i) {//i作为key小写字母作为m0的valuem0.insert(pairint, char(i, a i));//i作为key大写字母作为m1的valuem1.insert(pairint, char(i, A i)); }cout Before Swap : endl; cout m0 : endl; printMap(m0); cout m1 : endl; printMap(m1);m0.swap(m1);//交换 cout -------------------分割线-------------------- endl; cout After. Swap : endl; cout m0 : endl; printMap(m0); cout m1 : endl; printMap(m1); 程序执行结果如下所示 4.4 map插入元素 声明解释insert(pairT1, T2(key, value))将键值对key, value插入到map mapint, char m0; for (int i 0; i 10; i) {//i作为key小写字母作为m0的valuem0.insert(pairint, char(i, a i)); } cout m0 : endl; printMap(m0); 程序运行结果如下所示 4.5 map删除元素 声明解释erase(pos) 删除迭代器pos指向的那个元素 并返回下一个元素的迭代器 erase(begin, end) 删除迭代器pos指向的那个元素 并返回下一个元素的迭代器 erase(key) 删除map中关键字为key的元素 (如果是multimap则删除关键字为key的全部元素) clear()清除全部元素 4.5.1 erase(pos)示例 mapint, char m0; for (int i 0; i 10; i) {//i作为key小写字母作为m0的valuem0.insert(pairint, char(i, a i)); } cout m0 : endl; printMap(m0);//erase(m0.begin1) mapint, char::iterator begin m0.begin(); begin; m0.erase(begin); cout After erase(m0.begin1) , m0 : endl; printMap(m0); 程序运行结果如下所示 4.5.2 erase(begin, end)示例 mapint, char m0; for (int i 0; i 10; i) {//i作为key小写字母作为m0的valuem0.insert(pairint, char(i, a i)); } cout m0 : endl; printMap(m0);//erase(m0.begin1, end-2) mapint, char::iterator begin m0.begin(); mapint, char::iterator end m0.end(); begin; end--; end--; m0.erase(begin, end); cout After erase(m0.begin1, end-2) , m0 : endl; printMap(m0); 程序运行结果如下所示 4.5.3 erase(key)示例 为了便于测试删除的是关键字为key的全部元素此示例采用multimap multimapint, char m0; for (int i 0; i 10; i) {//i作为key小写字母作为m0的valuem0.insert(pairint, char(i, a i)); } //插入0, A 0, B 0, C for (int i 0; i 3; i) {m0.insert(pairint, char(0, A i)); } cout m0 : endl; printMap(m0);//erase(0) m0.erase(0); cout After erase(0) , m0 : endl; printMap(m0); 程序运行结果如下所示 4.5.4 clear()示例 mapint, char m0; for (int i 0; i 10; i) {//i作为key小写字母作为m0的valuem0.insert(pairint, char(i, a i)); } cout m0 : endl; printMap(m0);//clear() m0.clear(); cout After clear() , m0 : endl; printMap(m0); 程序运行结果如下所示 4.6 map查找元素 声明解释find(key) 返回map中关键字为key的第一个元素的迭代器 如果没找到返回end() multimapint, char m0; for (int i 0; i 10; i) {//i作为key小写字母作为m0的valuem0.insert(pairint, char(i, a i)); } //插入0, A 0, B 0, C for (int i 0; i 3; i) {m0.insert(pairint, char(0, A i)); } cout m0 : endl; printMap(m0);//找到key为0的第一个元素的迭代器 multimapint, char::iterator it m0.find(0); cout it-second : it-second endl; 程序运行结果如下所示 4.7 map统计指定元素个数 声明解释count(key)统计map中关键字为key的元素个数 multimapint, char m0; for (int i 0; i 10; i) {//i作为key小写字母作为m0的valuem0.insert(pairint, char(i, a i)); } //插入0, A 0, B 0, C for (int i 0; i 3; i) {m0.insert(pairint, char(0, A i)); } cout m0 : endl; printMap(m0);//统计key为0的元素个数 cout m0.count(0) : m0.count(0) endl; 程序运行结果如下所示 4.8 map自定义排序规则 map和set类似一样可以通过仿函数指定自己的排序规则。有关set容器可以看我之前写的文章《C的set / multiset容器》 下面给出一个示例便于直观理解。为了便于说明问题以下类中的成员权限均设置为public。首先我们先自定义一个关键字类MyKey class MyKey { public://优先级id1 id2int id1;int id2; }; 接下来我们给出指定排序规则的仿函数 //仿函数自定义排序规则 class MyKeyCompare { public:bool operator()(MyKey k1, MyKey k2) const {if (k1.id1 k2.id1) {//如果二者id1相等则比较id2return k1.id2 k2.id2;}else {return k1.id1 k2.id1;}} }; 在定义语句的第三个泛型中指定仿函数元素在插入后将自动按照仿函数的规则进行排序在主函数进行测试打印map的全部元素信息 //打印map所有元素信息的函数 void printMp(mapMyKey, string, MyKeyCompare mp) {for (mapMyKey, string::iterator it mp.begin(); it ! mp.end(); it) {cout id1为 it-first.id1 , ;cout id2为 it-first.id2 , ;cout 名为 it-second endl;} }//主函数 int main() {mapMyKey, string, MyKeyCompare mp;mp.insert(pairMyKey, string(MyKey(0, 1), A));mp.insert(pairMyKey, string(MyKey(2, 1), B));mp.insert(pairMyKey, string(MyKey(1, 6), C));mp.insert(pairMyKey, string(MyKey(0, 4), D));mp.insert(pairMyKey, string(MyKey(1, 1), E));printMp(mp);return 0; } 程序的执行结果如下所示 从上述结果中观察可以看出各个元素已经按照先id1后id2的规则进行自动排序了。
http://www.hkea.cn/news/14298145/

相关文章:

  • 大城县网站建设南京触屏网站开发
  • 网站建设公司中心企业网站推广短平快
  • 电商的网站怎么做的好青海省网站建设公司
  • 卖汽车的网站怎么做的吗wordpress超级大菜单如何使用
  • 手机网站设计机构建设银行论坛网站首页
  • 国内flash网站海南住房城乡建设网站
  • 中山手机网站开发做新的网站seo
  • 大连做公司网站哪家好山西城乡和建设厅网站
  • 湛江网站建设皆选小罗23网站建设中 切片指什么
  • 站群网站和做seo那个号凡科做的网站如何绑定域名
  • 域名网站是什么成都专门做网络推广的公司
  • 潍坊网站建设怎样鼓楼机关建设网站
  • 罗定微网站建设dede 网站名称 空的
  • 手机模拟装修app河源网站seo
  • 如何建设一个简易的网站福州餐饮网站建设
  • aspcms是网站什么漏洞it行业干什么
  • 网站开发合同 附件wordpress 侧边栏跟随
  • 有哪个网站做ic常用网站图标
  • 可以免费发布信息的网站有哪些克旗网站制作5229998
  • 怎么做有趣的视频网站网站开发的研究方法
  • 德阳企业网站建设apmserv wordpress
  • html5网站后台怎么做wordpress怎么安装在宝塔软件
  • 网站开发项目需求网架加工工厂图片
  • 北京 企业建网站脚本语言在网站开发中
  • 南宁做网站培训陕西网站备案流程
  • wordpress下载站插件dedecms模板安装教程
  • 江苏威达建设有限公司网站做网站好的框架
  • wordpress网站打开速度慢网页版传奇哪个最好玩
  • 阿里云服务器 做网站学院做网站的意义
  • 网站推广页新媒体运营培训