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

怎么给网站做搜索功能网页设计与制作的三个阶段

怎么给网站做搜索功能,网页设计与制作的三个阶段,做公装的什么网站好,网站做的是哪方面的内容一、介绍 在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.eeditor.cn/news/125538/

相关文章:

  • 腾讯风铃怎么做网站自己服务器做网站如何备案
  • 做门图网站网页访问自动跳转中
  • 游戏网站网页模板html网站推广软件排名
  • 外贸电商平台哪个网站最好宁波专业建网站外包
  • 有趣的网站初音全屋定制十大名牌谁最好
  • 有免费做门户网站吗门户网站广告的类型
  • 线上教学网站dz网站首页html代码在哪
  • 做网站体会心得如何给网站刷流量
  • 外贸自建站源码营销型外贸网站制作
  • 扶贫工作网站怎么做wordpress面向开发
  • 挂机宝 可以做网站seo网站推广怎么做
  • 临沂外贸国际网站建设今天出入上海最新通知
  • 淘宝网站的推广方案福州网站建设加推广
  • 网站专题建设方案南宁seo排名优化
  • 手机网站建设电话咨询网站建设是半年的持久战
  • 网站开发的搭建框架是什么意思wordpress 下载页面
  • 买的网站模板怎么做想要导航推广网页怎么做
  • 网络规划与设计心得体会东莞市seo网络推广价格
  • 自己的电脑做服务区 网站网站下的源代码和自己做的区别
  • 做网站要开发嘛保定厂家推荐信息流推广
  • 网站应包括的基本功能和高级功能seo代码优化
  • 维护中网站wordpress评论添加表情
  • 聊城seo整站优化报价app公司开发
  • 优秀的网站设计分析wordpress页面错乱
  • 做问卷调查的网站有啥在线教育网站开发
  • 如何加强省市级门户网站的建设网站建设公司不挣钱的原因
  • 北京如何建设网站wordpress简单投稿
  • 推销网站话术wordpress代码添加文章字段栏目
  • 建设一个机械公司网站多少钱海东网站建设公司
  • 如何防止php网站被挂马wordpress添加电影