wordpress 外贸/湘潭seo优化

wordpress 外贸,湘潭seo优化,wordpress调用代码,游戏优化在 C 的标准库中,std::unordered_set 是基于哈希表实现的哈希集合。下面介绍这种语言里哈希集合的常用函数。 C std::unordered_set 1. 元素操作 insert 功能:向哈希集合中插入元素。如果元素已经存在,则不会重复插入。示例代码&#xff1a…

在 C++ 的标准库中,std::unordered_set 是基于哈希表实现的哈希集合。下面介绍这种语言里哈希集合的常用函数。

C++ std::unordered_set

1. 元素操作

  • insert
    • 功能:向哈希集合中插入元素。如果元素已经存在,则不会重复插入。
    • 示例代码

#include <iostream>
#include <unordered_set>int main() {std::unordered_set<int> uset;uset.insert(1);uset.insert(2);for (auto num : uset) {std::cout << num << " ";}return 0;
}

  • erase
    • 功能:从哈希集合中移除指定元素。可以通过元素值或者迭代器来指定要移除的元素。
    • 示例代码

#include <iostream>
#include <unordered_set>int main() {std::unordered_set<int> uset = {1, 2, 3};uset.erase(2);for (auto num : uset) {std::cout << num << " ";}return 0;
}

  • find
    • 功能:查找指定元素。如果找到,返回指向该元素的迭代器;如果未找到,返回 end() 迭代器。
    • 示例代码

#include <iostream>
#include <unordered_set>int main() {std::unordered_set<int> uset = {1, 2, 3};auto it = uset.find(2);if (it != uset.end()) {std::cout << "Found: " << *it << std::endl;} else {std::cout << "Not found" << std::endl;}return 0;
}

  • count
    • 功能:统计指定元素在哈希集合中的数量。由于哈希集合中元素唯一,返回值要么是 0(元素不存在),要么是 1(元素存在)。
    • 示例代码

#include <iostream>
#include <unordered_set>int main() {std::unordered_set<int> uset = {1, 2, 3};std::cout << "Count of 2: " << uset.count(2) << std::endl;return 0;
}
2. 容量相关

  • empty
    • 功能:检查哈希集合是否为空。如果为空,返回 true;否则返回 false
    • 示例代码

#include <iostream>
#include <unordered_set>int main() {std::unordered_set<int> uset;std::cout << "Is empty: " << (uset.empty() ? "Yes" : "No") << std::endl;uset.insert(1);std::cout << "Is empty: " << (uset.empty() ? "Yes" : "No") << std::endl;return 0;
}

  • size
    • 功能:返回哈希集合中元素的数量。
    • 示例代码

#include <iostream>
#include <unordered_set>int main() {std::unordered_set<int> uset = {1, 2, 3};std::cout << "Size: " << uset.size() << std::endl;return 0;
}

  • max_size
    • 功能:返回哈希集合所能容纳的最大元素数量,这取决于系统和库的实现。
    • 示例代码

#include <iostream>
#include <unordered_set>int main() {std::unordered_set<int> uset;std::cout << "Max size: " << uset.max_size() << std::endl;return 0;
}
3. 迭代器相关

  • begin 和 end
    • 功能begin() 返回指向哈希集合首元素的迭代器,end() 返回指向哈希集合尾后位置的迭代器,可用于遍历哈希集合。
    • 示例代码

#include <iostream>
#include <unordered_set>int main() {std::unordered_set<int> uset = {1, 2, 3};for (auto it = uset.begin(); it != uset.end(); ++it) {std::cout << *it << " ";}return 0;
}

  • cbegin 和 cend
    • 功能:与 begin() 和 end() 类似,但返回的是常量迭代器,不能用于修改元素。
    • 示例代码

#include <iostream>
#include <unordered_set>int main() {const std::unordered_set<int> uset = {1, 2, 3};for (auto it = uset.cbegin(); it != uset.cend(); ++it) {std::cout << *it << " ";}return 0;
}

在 C++ 中,标准库提供了基于哈希表实现的容器 std::unordered_map(存储键值对)和 std::unordered_set(存储单一元素),下面详细介绍它们除了前面提到之外的常见函数和用法。

std::unordered_map

元素操作类

  • emplace
    • 功能:原位构造元素并插入到 unordered_map 中。与 insert 不同,emplace 可以直接使用构造函数的参数来构造元素,避免了临时对象的创建和拷贝。
    • 示例代码

#include <iostream>
#include <unordered_map>
#include <string>int main() {std::unordered_map<int, std::string> umap;umap.emplace(1, "one");for (const auto& pair : umap) {std::cout << pair.first << ": " << pair.second << std::endl;}return 0;
}

  • emplace_hint
    • 功能:与 emplace 类似,但可以提供一个迭代器作为插入位置的提示,帮助提高插入效率。不过,这只是一个提示,插入位置不一定就是该迭代器所指的位置。
    • 示例代码

#include <iostream>
#include <unordered_map>
#include <string>int main() {std::unordered_map<int, std::string> umap = {{1, "one"}, {2, "two"}};auto hint = umap.begin();umap.emplace_hint(hint, 3, "three");for (const auto& pair : umap) {std::cout << pair.first << ": " << pair.second << std::endl;}return 0;
}

  • extract
    • 功能:从 unordered_map 中提取一个元素,将其从容器中移除,但保留其资源,可用于后续的插入操作。
    • 示例代码

#include <iostream>
#include <unordered_map>
#include <string>int main() {std::unordered_map<int, std::string> umap = {{1, "one"}, {2, "two"}};auto node = umap.extract(1);if (node) {node.key() = 3;umap.insert(std::move(node));}for (const auto& pair : umap) {std::cout << pair.first << ": " << pair.second << std::endl;}return 0;
}
容量相关类

  • reserve
    • 功能:为 unordered_map 预留一定数量的桶(bucket),避免在插入元素时频繁进行哈希表的扩容操作,从而提高插入效率。
    • 示例代码

#include <iostream>
#include <unordered_map>
#include <string>int main() {std::unordered_map<int, std::string> umap;umap.reserve(100);for (int i = 0; i < 50; ++i) {umap[i] = std::to_string(i);}return 0;
}

  • rehash
    • 功能:设置 unordered_map 的桶数量。如果指定的桶数量小于当前元素数量,可能会导致哈希表重新哈希以适应新的桶数量。
    • 示例代码

#include <iostream>
#include <unordered_map>
#include <string>int main() {std::unordered_map<int, std::string> umap = {{1, "one"}, {2, "two"}};umap.rehash(10);return 0;
}
哈希策略相关类

  • load_factor
    • 功能:返回 unordered_map 当前的负载因子,即元素数量与桶数量的比值。负载因子过高可能会导致哈希冲突增加,影响性能。
    • 示例代码

#include <iostream>
#include <unordered_map>
#include <string>int main() {std::unordered_map<int, std::string> umap = {{1, "one"}, {2, "two"}};std::cout << "Load factor: " << umap.load_factor() << std::endl;return 0;
}

  • max_load_factor
    • 功能:可以设置或获取 unordered_map 的最大负载因子。当负载因子超过最大负载因子时,哈希表会自动进行扩容。
    • 示例代码

#include <iostream>
#include <unordered_map>
#include <string>int main() {std::unordered_map<int, std::string> umap;umap.max_load_factor(0.5);std::cout << "Max load factor: " << umap.max_load_factor() << std::endl;return 0;
}

std::unordered_set

std::unordered_set 的很多函数和用法与 std::unordered_map 类似,以下是一些额外的特点和示例:

元素操作类

  • emplace 和 emplace_hint
    • 功能:与 unordered_map 中的 emplace 和 emplace_hint 类似,用于原位构造元素并插入到 unordered_set 中。
    • 示例代码

#include <iostream>
#include <unordered_set>int main() {std::unordered_set<int> uset;uset.emplace(1);auto hint = uset.begin();uset.emplace_hint(hint, 2);for (const auto& num : uset) {std::cout << num << " ";}std::cout << std::endl;return 0;
}
容量和哈希策略相关类

unordered_set 同样支持 reserverehashload_factor 和 max_load_factor 等函数,用法与 unordered_map 一致,用于管理容量和哈希策略。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/72007.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大语言模型打卡学习DAY1

学习目标&#xff1a; 语言模型的发展历程 大模型的技术基础 学习内容&#xff1a; 1. 语言模型的发展历程 语言模型通常是指能够建模自然语言文本生成概率的模型&#xff0c;从语言建模到任务求解&#xff0c;这是科学思维的一次重要跃升。2. 大语言模型技术基础 定义&#…

基于python的升级队列加速决策

a-f大等级是3级 a-c建筑每升1级分别需要8天 d-f建筑每升1级分别需要10天 目前以下建筑队列正在从0级升至1级 建筑A升级需要7天05&#xff1a;16&#xff1a;20 建筑b升级需要06&#xff1a;06&#xff1a;54 建筑c升级需要00&#xff1a;37&#xff1a;00 建筑d升级需要…

【redis】hash基本命令和内部编码

文章目录 表示形式命令HSET 和 HGET HEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSETNXHINCRBYHINCRBYFLOAT命令小结内部编码 表示形式 Redis 自身已经是键值对结构了 Redis 自身的键值对就是通过哈希的方式来组织的 把 key 这一层组织完成之后&#xff0c;到了 value 这一层&…

行为模式---策略模式

概念 策略模式是一种行为设计摸是&#xff0c;它的核心思想是将一些列的算法封装成独立的对象&#xff0c;并使它们可以相互替换&#xff0c;通过上下文进行调用。 策略模式通过算法抽象为独立的策略类&#xff0c;客户端可以根据自身需求选择不同的策略类来完成任务、这种方…

【社区投稿】深入再谈智能指针、AsRef引用与Borrow借用

深入再谈智能指针、AsRef引用与Borrow借用 这是一个具有深度的技术主题。每次重温其理论知识&#xff0c;都会有新的领悟。大约 2 年前&#xff0c;我曾就这一技术方向撰写过另一篇短文《从类型转换视角&#xff0c;浅谈Deref<Target T>, AsRef<T>, Borrow<T&g…

外层元素旋转,其包括在内的子元素一并旋转(不改变旋转中心),单元测试

思路&#xff1a;外层旋转后坐标&#xff0c;元素旋转后坐标&#xff0c;计算偏移坐标 <template><div class"outbox"><label>角度: <input v-model.number"rotate" type"number" /></label><br><div c…

Oracle数据库存储结构--物理存储结构

数据库存储结构&#xff1a;分为物理存储结构和逻辑存储结构。 物理存储结构&#xff1a;操作系统层面如何组织和管理数据 逻辑存储结构&#xff1a;Oracle数据库内部数据组织和管理数据&#xff0c;数据库管理系统层面如何组织和管理数据 存储结构 在Oracle数据库的存储结构…

纺织服装制造行业现状 内检实验室系统在纺织服装制造行业的应用

在纺织服装制造行业&#xff0c;内检实验室LIMS系统&#xff08;实验室信息管理系统&#xff09;已成为提升检测效率、优化质量控制和满足行业合规性要求的关键工具。随着行业竞争的加剧和消费者对产品质量要求的提高&#xff0c;纺织服装制造企业需要更加高效、准确的检测流程…

3分钟复现 Manus 超强开源项目 OpenManus

文章目录 前言什么是 OpenManus构建方式环境准备克隆代码仓库安装依赖配置 LLM API运行 OpenManus 效果演示总结个人简介 前言 近期人工智能领域迎来了一位备受瞩目的新星——Manus。Manus 能够独立执行复杂的现实任务&#xff0c;无需人工干预。由于限制原因大部分人无法体验…

【大模型统一集成项目】如何封装多个大模型 API 调用

&#x1f31f; 在这系列文章中&#xff0c;我们将一起探索如何搭建一个支持大模型集成项目 NexLM 的开发过程&#xff0c;从 架构设计 到 代码实战&#xff0c;逐步搭建一个支持 多种大模型&#xff08;GPT-4、DeepSeek 等&#xff09; 的 一站式大模型集成与管理平台&#xff…

AI4CODE】3 Trae 锤一个贪吃蛇的小游戏

【AI4CODE】目录 【AI4CODE】1 Trae CN 锥安装配置与迁移 【AI4CODE】2 Trae 锤一个 To-Do-List 这次还是采用 HTML/CSS/JAVASCRIPT 技术栈 Trae 锤一个贪吃蛇的小游戏。 1 环境准备 创建一个 Snake 的子文件夹&#xff0c;清除以前的会话记录。 2 开始构建 2.1 输入会…

从零开发Chrome广告拦截插件:开发、打包到发布全攻略

从零开发Chrome广告拦截插件&#xff1a;开发、打包到发布全攻略 想打造一个属于自己的Chrome插件&#xff0c;既能拦截烦人的广告&#xff0c;又能优雅地发布到Chrome Web Store&#xff1f;别担心&#xff0c;这篇教程将带你从零开始&#xff0c;动手开发一个功能强大且美观…

基于腾讯云高性能HAI-CPU的跨境电商客服助手全链路解析

跨境电商的背景以及痛点 根据Statista数据&#xff0c;2025年全球跨境电商市场规模预计达6.57万亿美元&#xff0c;年增长率保持在12.5% 。随着平台规则趋严&#xff08;如亚马逊封店潮&#xff09;&#xff0c;更多卖家选择自建独立站&#xff0c;2024年独立站占比已达35%。A…

git安装,配置SSH公钥(查看版本、安装路径,更新版本)git常用指令

目录 一、git下载安装 1、下载git 2、安装Git‌&#xff1a; 二、配置SSH公钥 三、查看安装路径、查看版本、更新版本 四、git常用指令 1、仓库初始化与管理 2、配置 3、工作区与暂存区管理 4、提交 5、分支管理 6、远程仓库管理 7、版本控制 8、其他高级操作 一…

【鸿蒙开发】OpenHarmony调测工具hdc使用教程(设备开发者)

00. 目录 文章目录 00. 目录01. OpenHarmony概述02. hdc简介03. hdc获取04. option相关的命令05. 查询设备列表的命令06. 服务进程相关命令07. 网络相关的命令08. 文件相关的命令09. 应用相关的命令10. 调试相关的命令11. 常见问题12. 附录 01. OpenHarmony概述 OpenHarmony是…

手写简易Tomcat核心实现:深入理解Servlet容器原理

目录 一、Tomcat概况 1. tomcat全局图 2.项目结构概览 二、实现步骤详解 2.1 基础工具包&#xff08;com.qcby.util&#xff09; 2.1.1 ResponseUtil&#xff1a;HTTP响应生成工具 2.1.2 SearchClassUtil&#xff1a;类扫描工具 2.1.3 WebServlet&#xff1a;自定义注解…

【Java开发指南 | 第三十四篇】IDEA没有Java Enterprise——解决方法

读者可订阅专栏&#xff1a;Java开发指南 |【CSDN秋说】 文章目录 1、新建Java项目2、单击项目名&#xff0c;并连续按两次shift键3、在搜索栏搜索"添加框架支持"4、勾选Web应用程序5、最终界面6、添加Tomcat 1、新建Java项目 2、单击项目名&#xff0c;并连续按两次…

在MATLAB中实现PID控制仿真

在MATLAB中实现PID控制仿真可以通过代码编程或Simulink图形化建模两种方式完成。以下是两种方法的详细操作步骤和示例&#xff1a; 方法1&#xff1a;使用MATLAB脚本编程&#xff08;基于控制系统工具箱&#xff09; 步骤1&#xff1a;定义被控对象的数学模型 假设被控对象是…

蓝桥杯历年真题题解

1.轨道炮&#xff08;数学模拟&#xff09; #include <iostream> #include <map> using namespace std; const int N1010; int x[N],y[N],v[N]; char d[N]; int main() {int n;int ans-100;cin>>n;for(int i1;i<n;i)cin>>x[i]>>y[i]>>v…

Pytorch的一小步,昇腾芯片的一大步

Pytorch的一小步&#xff0c;昇腾芯片的一大步 相信在AI圈的人多多少少都看到了最近的信息&#xff1a;PyTorch最新2.1版本宣布支持华为昇腾芯片&#xff01; 1、 发生了什么事儿&#xff1f; 在2023年10月4日PyTorch 2.1版本的发布博客上&#xff0c;PyTorch介绍的beta版本…