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

杭州网站建设中心网站分析 实例

杭州网站建设中心,网站分析 实例,制作会员手机网站,马云的网站怎么做的C map 容器介绍 map 是 C 标准库中的一个关联容器&#xff0c;它存储键值对&#xff0c;每个键值对的键是唯一的。map 中的元素是按照键的排序顺序进行存储的&#xff08;通常使用键的 < 运算符进行排序&#xff09;。map 实现了一个自平衡的二叉查找树&#xff0c;通常是红…

C++ map 容器介绍

map 是 C++ 标准库中的一个关联容器,它存储键值对,每个键值对的键是唯一的。map 中的元素是按照键的排序顺序进行存储的(通常使用键的 < 运算符进行排序)。map 实现了一个自平衡的二叉查找树,通常是红黑树,这使得其查找、插入和删除操作的时间复杂度为 O(log n)。

1. map 的基本特性

  • 键唯一性map 中的每个键都是唯一的。
  • 键排序map 按照键的顺序进行排序,默认使用 operator< 来排序键。你也可以自定义排序规则。
  • 关联存储:每个键对应一个值,即每个键值对(key-value pair)。
  • 自动排序:默认情况下,map 会按照键的升序进行排序,但你可以提供自定义的比较函数来改变排序顺序。

2. map 的常见操作

2.1 构造与初始化

#include <iostream>
#include <map>int main() {// 使用默认构造函数std::map<int, std::string> m;// 使用初始化列表std::map<int, std::string> m2 = {{1, "one"}, {2, "two"}, {3, "three"}};// 输出for (const auto& pair : m2) {std::cout << pair.first << ": " << pair.second << std::endl;}return 0;
}

2.2 插入元素

你可以使用 insert()[] 操作符来插入元素。

std::map<int, std::string> m;
m[1] = "apple";  // 使用 [] 插入
m.insert({2, "banana"});  // 使用 insert 插入

2.3 查找元素

使用 find() 方法可以查找某个键对应的值。

std::map<int, std::string> m = {{1, "apple"}, {2, "banana"}};
auto it = m.find(1);  // 查找键为1的元素
if (it != m.end()) {std::cout << "Found: " << it->second << std::endl;
}

2.4 删除元素

可以使用 erase() 删除指定键的元素。

m.erase(1);  // 删除键为1的元素

2.5 获取大小与检查是否为空

std::cout << "Size: " << m.size() << std::endl;
std::cout << "Is empty: " << (m.empty() ? "Yes" : "No") << std::endl;

2.6 访问元素

可以使用 [] 操作符或 at() 方法访问元素。注意,如果键不存在,[] 操作符会插入一个默认值。

std::cout << m[1] << std::endl;  // 如果键1存在,返回对应的值;如果不存在,插入一个默认值

2.7 遍历 map

可以使用迭代器遍历 map

for (auto it = m.begin(); it != m.end(); ++it) {std::cout << it->first << ": " << it->second << std::endl;
}

或者使用范围基于的 for 循环:

for (const auto& pair : m) {std::cout << pair.first << ": " << pair.second << std::endl;
}

3. 自定义排序规则

map 默认按照键的升序排序,但可以自定义排序规则。例如,按降序排序:

#include <iostream>
#include <map>struct Descending {bool operator()(int a, int b) const {return a > b;}
};int main() {std::map<int, std::string, Descending> m;m[1] = "apple";m[2] = "banana";m[3] = "cherry";for (const auto& pair : m) {std::cout << pair.first << ": " << pair.second << std::endl;}return 0;
}

4. mapunordered_map 的区别

  • 排序map 是有序的,它按照键的顺序进行排序;而 unordered_map 是无序的,它根据哈希值存储元素。
  • 时间复杂度map 的查找、插入、删除操作的时间复杂度是 O(log n),而 unordered_map 的这些操作的时间复杂度是 O(1)(在最坏的情况下可能退化为 O(n))。

5. 常见的成员函数

  • insert():插入元素。
  • find():查找元素。
  • erase():删除元素。
  • size():获取元素个数。
  • empty():检查容器是否为空。
  • clear():删除所有元素。

如果需要快速查找并且顺序不重要,可以考虑使用 unordered_map

#include <map>
#include <string>
#include <iostream>int main() {// 示例:使用 map 存储键值对std::map<int, std::string> m;m[1] = "apple";m[2] = "banana";m[3] = "cherry";// 遍历并输出for (const auto& pair : m) {std::cout << pair.first << ": " << pair.second << std::endl;}return 0;
}

文章转载自:

http://ZV7JoiUj.gLhtj.cn
http://cNDuPJdU.gLhtj.cn
http://p9MnR6nR.gLhtj.cn
http://ehuLbzxQ.gLhtj.cn
http://jtb5zHSg.gLhtj.cn
http://7kY51X80.gLhtj.cn
http://jB7HxZvX.gLhtj.cn
http://I9ZwDKuL.gLhtj.cn
http://2oAe8XJi.gLhtj.cn
http://Mzf91HQZ.gLhtj.cn
http://qRwLMO7u.gLhtj.cn
http://kurfHhcv.gLhtj.cn
http://8E7egyw7.gLhtj.cn
http://W5m4JgeI.gLhtj.cn
http://88FZI43v.gLhtj.cn
http://pD0FT7zb.gLhtj.cn
http://AQBLIfBb.gLhtj.cn
http://an574okB.gLhtj.cn
http://xfVGaZBK.gLhtj.cn
http://DRFXO9NV.gLhtj.cn
http://GIlXvo7A.gLhtj.cn
http://FWQ8TXjy.gLhtj.cn
http://MaW3zKrY.gLhtj.cn
http://BSZTaNTs.gLhtj.cn
http://RlTLvF34.gLhtj.cn
http://P2YFHK39.gLhtj.cn
http://crMbYjw5.gLhtj.cn
http://AefWIh7G.gLhtj.cn
http://s2w43UMq.gLhtj.cn
http://g1Blaxn4.gLhtj.cn
http://www.dtcms.com/wzjs/647049.html

相关文章:

  • 网站建设教育类旧式网站高端网站建设费用情况
  • 济南营销网站建设西安谷歌推广
  • 网站设计规划范文手机参数对比的网站
  • 网站注册实名制怎么做忻州做网站公司
  • 公司网站申请书爱给网
  • 太原专门做网站物理网络设计
  • jsp网站开发四库全书公司门户网站模板
  • 网站方案建立网站后期需要干嘛
  • html5网站地址如何制作自己的网页链接
  • 迁移wordpress网站建设优化推广安徽
  • 海安网站优化胶州网站建设哪家好
  • 天长做网站的广州有做网站的公司吗
  • 外国 网站模板单页面组合网站
  • 网站建设实施进度与资源管理html个人网站怎么做
  • 网站建设的一般过程包括哪些网站建设基础及流程
  • 成都购物网站建设网站营销策略有哪些
  • 手机网站建设网网络推广公司盈利模式
  • 佛山网站专家网站建设费记入科目
  • 甘肃省建设厅查行网站菏泽做网站的公司
  • 自己做的网站怎么赚钱phpcms 图片网站
  • 做网站比较好备案网站忘记密码
  • 企业建站用什么系统佛山外贸网站建设
  • 四川高速公路建设开发集团有限公司网站wordpress能静态吗
  • 如何给网站做提升支付平台网站建设
  • 可以建网站的路由器最简单的企业网站
  • 网站开发面试问题以及回答电子商务网站建设题库
  • 如何让公司网站wordpress全站采集
  • 化学产品在哪个网站做推广最好石家庄网站排名软件
  • 免费创建个人商城网站南阳做网站公司
  • 成都哪家公司做网站好建设好一个网站需要