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

php动态网站开发原理宣传推广的十种方式

php动态网站开发原理,宣传推广的十种方式,免费网站域名查询,开源模板网站Cmap容器详解 求关注 一、Map容器概述 map是C标准模板库(STL)中的关联式容器,以键值对(Key-Value)形式存储数据,底层通过红黑树(一种自平衡二叉搜索树)实现。其核心特性包括&#…

C++map容器详解

求关注

一、Map容器概述
map是C++标准模板库(STL)中的关联式容器,以键值对(Key-Value)形式存储数据,底层通过红黑树(一种自平衡二叉搜索树)实现。其核心特性包括:

  1. 自动排序:元素按Key的升序排列,无需手动排序。

  2. 唯一键值:每个Key在容器中唯一,若重复插入则覆盖或忽略(取决于插入方式)。

  3. 高效操作:插入、删除、查找的时间复杂度为O(log n),适合频繁查找的场景。

示例:定义map

C++

#include <map>
#include <string>
using namespace std;map<int, string> studentMap;  // Key为int类型,Value为string类型

二、Map核心操作

1. 插入数据

三种常用插入方式

  • insert()函数:安全插入,若Key已存在则不会覆盖。

    C++

    studentMap.insert(pair<int, string>(101, "Alice"));
    studentMap.insert(map<int, string>::value_type(102, "Bob"));
    studentMap.insert(make_pair(103, "Charlie"));  // 推荐简洁写法
  • 数组[]操作符:若Key存在则覆盖Value。

    C++

    studentMap[104] = "David";  // 若104不存在则插入,存在则更新
  • 返回值判断:通过pair<iterator, bool>检查插入是否成功37。

    C++

    复制

    auto result = studentMap.insert(make_pair(101, "Eve"));
    if (!result.second) cout << "Key 101已存在!";

2. 查找与访问

  • find()函数:返回迭代器,未找到时指向end()14。

    C++

    auto it = studentMap.find(102);
    if (it != studentMap.end()) cout << "找到:" << it->second;  // 输出Bob
  • count()函数:返回Key是否存在(0或1)。

  • lower_bound()upper_bound():用于范围查找。

3. 删除数据

  • 按Key删除erase(key)

  • 按迭代器删除erase(iterator)

  • 范围删除erase(start_iterator, end_iterator)

    C++

    studentMap.erase(103);  // 删除Key为103的元素
    auto it = studentMap.find(104);
    if (it != studentMap.end()) studentMap.erase(it);

4. 遍历元素

  • 迭代器遍历

    C++

    for (auto it = studentMap.begin(); it != studentMap.end(); ++it) cout << it->first << ": " << it->second << endl;
  • C++11范围循环

    C++

    for (auto& entry : studentMap) cout << entry.first << ": " << entry.second << endl;

三、高级技巧与注意事项

1. 自定义排序规则

默认按Key升序排列,若需自定义排序,可提供比较函数:

C++

复制

struct CompareDesc {bool operator()(const int& a, const int& b) const {return a > b;  // 降序排列}
};
map<int, string, CompareDesc> customMap;

2. 性能优化

  • 避免频繁插入删除:红黑树结构调整有开销。

  • 预分配空间:若已知元素数量,可提前预留内存。

3. 常见问题

  • 迭代器失效:删除元素时需注意,正确写法为erase(it++)

  • 键不可修改:Key为常量,需先删除旧键再插入新键。


四、应用实例

案例:统计单词频率

C++

复制

map<string, int> wordCount;
string word;
while (cin >> word) wordCount[word]++;  // 自动初始化并统计for (auto& entry : wordCount) cout << entry.first << ": " << entry.second << "次" << endl;

五、总结

map容器凭借其高效的查找能力和自动排序特性,广泛应用于数据映射、缓存管理、配置存储等场景。掌握其核心操作与底层原理,能显著提升代码效率。对于需要更高插入/删除性能的场景,可考虑unordered_map(哈希表实现)。

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

相关文章:

  • 外包网站推荐今日头条最新
  • 品牌做网站公司比较有名的个人网站
  • 做推文网站除了秀米还要什么精准信息预测
  • 网站哪里有做的如何引流推广
  • 怎么做室内设计公司网站奶盘seo伪原创工具
  • 西青集团网站建设自媒体平台注册下载
  • 网站内部链接建设展示型网站有哪些
  • 手机网站建站视频教程百度seo价格查询系统
  • 网站建设教程简笔画怎样建网站平台
  • 微信商城和小程序的区别seo国外推广软件
  • 中堂仿做网站深圳网站建设开发公司
  • 成都平台网站建设公司泉州百度开户
  • 企业门户网站功能域名交易中心
  • 美国科技网站网站推广名词解释
  • 专业网站建设公优化器
  • 电脑上做简单的网站关键词采集网站
  • 哪里有网站建设工程浙江网站建设平台
  • 三亚学做网站培训百度云搜索引擎入口盘多多
  • wordpress首页文件上海seo培训中心
  • mysql 视频网站开发公司网络营销策划书
  • 那个视频网站好网站网络推广服务
  • 南京外贸网站建站怎么做网络广告推广
  • 自己做网站除了域名还要买什么购买链接平台
  • 太原网站制作哪家便宜seo课程培训班
  • 做网站的学校有哪些高端营销型网站制作
  • 网站建设图片怎么做免费个人网页制作
  • 珠海做网站哪家最专业什么是营销渠道
  • 多用户网站建设方案万网登录入口
  • 东莞建站seo综合排名优化
  • 个人静态网站百度上如何做优化网站