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

网站开发完没人运营wordpress博客非插件

网站开发完没人运营,wordpress博客非插件,wordpress大学添加背景音乐,网站外包 博客关联容器 关联容器和顺序容器有着根本的不同:关联容器中的元素是按关键字来保存和访问的,而顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的。 关联容器支持高效的关键字查找和访问。 两个主要的关联容器(associative-container),set和map。 set 中每个元素只包…

关联容器

关联容器和顺序容器有着根本的不同:关联容器中的元素是按关键字来保存和访问的,而顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的。

关联容器支持高效的关键字查找和访问。

两个主要的关联容器(associative-container),set和map。

set 中每个元素只包含一个关键字。set 支持高效的关键字查询操作一一检查一个给定关键字是否在 set 中。

map 的元素是关键字-值 (key-value)对(也称键-值对)。其中关键字起到索引的作用,值则表示与索引相关联的数据。字典是一个很好的使用 map 的例子:可以将单词作为关键字,将单词释义作为值。

标准库针对set和map一共提供8种不同的关联容器。1.是否运行关键字重复;2.是否按顺序保存元素

set和multiset定义在头文件set中;map和multimap定义在头文件map中;无序容器则定义在头文件unordered set和unordered map中。 

pair 数对是什么

pair数对是 C++ 标准库中的一个模板类,它提供了一种简单的方式来将两个值组合成一个单元。这两个值可以是相同类型,也可以是不同类型。就好比一个小巧的容器,专门用来存放两个紧密相关的数据元素。例如,在处理平面直角坐标系中的点时,我们可以用一个pair来同时存储点的横坐标和纵坐标;在统计单词出现频率时,pair能将单词及其对应的出现次数放在一起。

使用时需要引用文件

#include <utility>//通用工具
namespace std {template <typename T1,typename T2>struct pair {T1 first; //成员1T2 second;//成员2...};
}

操作函数

pair应用举例

pair的基本操作举例:

#include <iostream>
#include <utility>
using namespace std;int main()
{pair<int, double>p1;//创建一个空的pair//注意访问first和second时没有()cout << "p1=(" << p1.first << "," << p1.second << ")" << endl;pair<int, double>p2(10, 23.4);//创建一个pair,数据为(10,23.4)cout << "p2=(" << p2.first << "," << p2.second << ")" << endl;pair<int, double>p3(p2);//通过p2拷贝构造一个p3p3.first = 100;cout << "p3=(" << p3.first << "," << p3.second << ")" << endl;p1 = p3;//把p3赋值给p1cout << "p1 = p3后" << endl;cout << "p1=(" << p1.first << "," << p1.second << ")" << endl;p3 = make_pair(100, 200);cout << "p3 = make_pair(100,200)后" << endl;//通过get访问p3的成员cout << "p3=(" << get<0>(p3) << "," << get<1>(p3) << ")" << endl;return 0;
}

作为函数参数

pair数对可以作为函数参数,使得函数能够方便地接收一组相关的数据。

#include <iostream>
#include <cmath>
#include <utility>
using namespace std;double distance(pair<double, double> point1, pair<double, double> point2) {double dx = point2.first - point1.first;double dy = point2.second - point1.second;return sqrt(dx * dx + dy * dy);
}int main() {pair<double, double> p1(1.0, 2.0);pair<double, double> p2(4.0, 6.0);cout << "Distance between points: " << distance(p1, p2) << endl;return 0;
}

作为函数返回值

函数也可以返回pair数对,这样就能一次性返回两个相关的结果。

#include <iostream>
#include <utility>
using namespace std;
pair<int, int> MinMax(int* arr, int len)//找到数组的最小值和最大值
{int min = arr[0]; //最小值int max = arr[0];//最大值for (int i = 1; i < len; i++){if (arr[i] < min)min = arr[i];if (arr[i] > max)max = arr[i];}return make_pair(min, max);
}int main()
{int arr[] = { 3,1,8,9,34,2,67,5,70,12,34,65,99,20 };auto p = MinMax(arr, sizeof(arr) / sizeof(arr[0]));cout << "最小值:" << p.first << ",最大值:" << p.second << endl;return 0;
}

pair 数对与 STL 容器的结合

pair 在 vector 中的应用

pair 在 vector 中的应用 vector是 C++ 中常用的动态数组容器,当需要存储一组相关的数对时,vector与pair的结合非常实用。例如,统计单词出现次数的场景:

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <utility>
using namespace std;vector<pair<string, int>> countWords(const vector<string>& words) {vector<pair<string, int>> wordCount;for (const string& word : words) {auto it = find_if(wordCount.begin(), wordCount.end(),[&word](const pair<string, int>& p) {return p.first == word;});if (it != wordCount.end()) {++(it->second);}else {wordCount.emplace_back(word, 1);}}return wordCount;
}int main() {vector<string> sentence = { "apple", "banana", "apple", "cherry", "banana", "apple" };vector<pair<string, int>> result = countWords(sentence);for (const auto& pair : result) {cout << pair.first << ": " << pair.second << " 次" << endl;}return 0;
}

pair 在 map 中的应用

map是一种关联容器,它以键值对的形式存储数据。实际上,map的内部实现就是基于pair的。map的键和值分别对应pairfirstsecond

#include <iostream>
#include <map>
#include <string>using namespace std;int main() {map<string, int> ageMap;ageMap["Alice"] = 25;ageMap["Bob"] = 30;for (const auto& pair : ageMap) {cout << pair.first << " " << pair.second << "岁" << endl;}return 0;
}

这里ageMap中的每一个元素本质上就是一个pair<string, int>

pair 数对的优势与使用场景

代码简洁性

使用pair数对可以避免创建复杂的自定义结构体来存储两个相关的数据。例如,在简单的坐标表示或键值对存储场景中,pair能极大地简化代码结构,使代码更加易读。

数据关联性

pair明确地表达了两个数据元素之间的关联关系。在函数参数传递和返回值中,使用pair能清晰地表明这两个值是作为一个整体进行处理的,增强了代码的语义性。

算法支持

C++ 标准库中的许多算法,如排序、查找等,都对pair提供了良好的支持。这使得在处理包含pair的容器时,能够方便地利用这些算法进行高效操作。

总结

pair数对作为 C++ 标准库中的一个小巧而强大的工具,为我们在编程过程中处理相关数据提供了便捷的方式。从基本的定义、初始化和访问,到在函数参数、返回值以及与 STL 容器的结合应用,pair数对都展现出了其独特的优势。它不仅能让代码更加简洁明了,还能提升代码的可读性和可维护性。在日常编程中,当你遇到需要处理两个相关数据的场景时,不妨尝试使用pair数对,相信它会为你的编程工作带来意想不到的便利。让我们充分利用pair数对这一强大武器,在 C++ 的编程世界中更加游刃有余地前行。

http://www.dtcms.com/wzjs/574192.html

相关文章:

  • ui图标素材网站济南网站设计制作要多久
  • 个人网站做公司网站建筑工程网教育网
  • 三星网上商城app官方版天津百度优化
  • 网站建设法律厦门网站搜索优化
  • 门户网站具有什么特点asp.net做网站的优势
  • 长沙的网站建设公司哪家好网球排名即时最新排名
  • 做网销的网站wordpress带商城
  • 网站的建设方面如何写手机商店app下载
  • 顺德品牌网站建设信息网络广告推广服务
  • 鲜花网站建设图片医疗网站如何做优化
  • 如何制作淘宝客网站旅行网站排名前十名
  • 用什么l软件做网站了住房和城乡建设部证书查询
  • 分类网站一天做几条合适制作外贸网站开发
  • 上海网站建设服务分录网络公司经营范围和管理条例
  • 天津做网站公司哪家好网站的图片尺寸
  • wordpress上站工具博野网站建设
  • 互联网行业信息网站获得网站所有关键字
  • js博客网站开发计划书食品品牌网站策划
  • 百度怎么做网站广告网店推广计划怎么写免费的
  • php网站 mysql数据库配置文件在线crm平台
  • 美容院网站建设方案书网站运营 开发
  • 企业高端网站建设需要注意哪些事项北京网站优化外包
  • 建立的含义优化绿松石什么意思
  • 网站怎么做弹幕播放器怎么建立网站推广
  • 网站优化 pdf网页设计报告结束语
  • 图书馆新生专栏网站建设最近的重要新闻
  • 网站文件夹名凡科网登录官网
  • 网站建立时间wordpress如何导入模板数据库
  • 企业网站开发需求文档做盗版电影网站违法吗
  • 四川省城乡建设厅官方网站网页特效设计