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

烟台网站制作维护建设网站哪些好

烟台网站制作维护,建设网站哪些好,超链接对做网站重要吗,泉州专业建站一、了解 unordered_set是一个无序关联容器,其内部基于哈希表实现。核心特性是 唯一性、无序性 和 快速查找。 核心特性 元素的唯一性 与 std::set 类似,不允许多个相同元素(需唯一性确保的容器)。 无序存储 元素不按特定顺序排…

一、了解

unordered_set是一个无序关联容器,其内部基于哈希表实现。核心特性是 唯一性、无序性 和 快速查找

  • 核心特性
    • 元素的唯一性
      • 与 std::set 类似,不允许多个相同元素(需唯一性确保的容器)。
    • 无序存储
      • 元素不按特定顺序排列,存储顺序由哈希函数决定
    • 底层实现
      • 基于哈希表,查找、插入、删除的平均时间复杂度为 O(1)最坏情况 O(n))。
    • 哈希依赖
      • 需要为键类型提供哈希函数(内置类型自动支持,自定义类型需手动定义)。
      • 不可修改值
        • 如果修改值,会影响哈希。
  • unordered_set使用的头文件
#include <unordered_set>

二、初始化

unordered_set<typename> name;//默认哈希函数构造
  • 例子
std::unordered_set<int> us1;                // 默认构造
std::unordered_set<std::string> us2 = {"apple", "banana", "cherry"};

三、自定义哈希构造

  • 对于自定义类型,需提供 哈希函数键相等比较 的规则:
struct Person {std::string name;int age;
};// 自定义哈希函数(需进入 std 命名空间特例化)
namespace std {
template <>
struct hash<Person> {size_t operator()(const Person& p) const {return hash<string>()(p.name) ^ hash<int>()(p.age);}
};
} // namespace std// 特例化相等运算符
bool operator==(const Person& a, const Person& b) {return a.name == b.name && a.age == b.age;
}// 使用自定义类型的 unordered_set
std::unordered_set<Person> people;
people.insert({"Alice", 25});
people.insert({"Bob", 30});

三、常用函数

1、总结

在这里插入图片描述

2、例子

2.1、插入操作

  • insert(key)
    • 插入元素
int main() {unordered_set<int>set1{1,2,3,4};set1.insert(5);for(auto i:set1){cout<<i<<" ";//5 4 3 2 1}
}
  • insert(pos , key)
    • 在pos插入key
int main() {unordered_set<int>set1{1,2,3,4};set1.insert(set1.begin(),{5});for(auto i:set1){cout<<i<<" ";//5 4 3 2 1}
}
  • inserrt(other_first , other_end )
    • 插入另一个unordered_set的范围
int main() {unordered_set<int>set1{1,2,3,4};unordered_set<int>set2{5,6};set1.insert(set2.begin(),set2.end());for(auto i:set1){cout<<i<<" ";//5 6 4 3 2 1}
}

2.2、删除操作

  • erase(pos)
    • 删除pos的值
int main() {unordered_set<int>set1{1,2,4};set1.erase(set1.begin());for(auto i:set1){cout<<i<<" ";// 2 1}
}
  • erase(key)
    • 删除key
int main() {unordered_set<int>set1{1,2,4};set1.erase(1);for(auto i:set1){cout<<i<<" ";//4 2}
}
  • erase(first , end )
    • 删除这个范围内的值
int main() {unordered_set<int>set1{1,2,4};set1.erase(set1.begin(),set1.end());for(auto i:set1){cout<<i<<" ";//}
}

2.3、访问操作

  • 迭代器访问
    • begin:返回第一个
    • end:返回最后一个的后一位
int main() {unordered_set<int>set1{1,2,4};auto i = set1.begin();auto j = set1.end();cout<<*i<<endl;//1cout<<*j<<endl;//这个值无法得到}

2.4、交换操作

  • swap(other_unordered_set)
    • 交换2个unordered_set
int main() {unordered_set<int>set1{1,2,3,4};unordered_set<int>set2{5,6};set1.swap(set2);for(auto i:set1){cout<<i<<" ";//6 5}
}

2.5、查找操作

  • find(key)
    • 返回key位置的迭代器,没找到返回end()迭代器
int main() {unordered_set<int>set1{1,2,4};auto i = set1.find(1);cout<<*i<<endl;//1
}
  • count(key)
    • 返回key的个数
int main() {unordered_set<int>set1{1,2,3,4};int num = set1.count(1);cout<<num<<endl;//1}

2.6、容量操作

  • size()
    • 返回元素个数
int main() {unordered_set<int>set1{1,2,3,4};int num = set1.size();cout<<num<<endl;//4
}
  • empty()
    • 检查容器是否为空
int main() {unordered_set<int>set1{1,2,3,4};if(set1.empty()==0){cout<<"set1是有值的"<<endl;//set1是有值的}else{cout<<"set1是无值的"<<endl;}}

2.7、清空操作

  • clear()
    • 清空所有元素
int main() {unordered_set<int>set1{1,2,3,4};set1.clear();for(auto i:set1){cout<<i<<" ";//}
}

2.8、哈希操作(这里的s是unordered_set的一个节点来算的)

  • bucket_count()
    • 返回哈希表中桶(Bucket)的总数
s.bucket_count();//返回
  • load_factor()
    • 返回平均每个桶存放的元素数量(负载因子)
s.load_factor();//返回
  • rehash(n)
    • 设置哈希表的桶数为 n,优化性能
s.rehash(100);//哈希表桶设置为100
  • max_load_factor()
    • 调整负载因子
s.max_load_facotr(0.75)//负载因子设置为0.75

文章转载自:

http://KZvyUvZW.gcdzp.cn
http://amuJsf2o.gcdzp.cn
http://gXscV20k.gcdzp.cn
http://ax8EARSp.gcdzp.cn
http://59NwO2Li.gcdzp.cn
http://XalrYTVP.gcdzp.cn
http://m3WRDOwi.gcdzp.cn
http://tKh3uIhm.gcdzp.cn
http://4gmwOFJJ.gcdzp.cn
http://C8fVXW2d.gcdzp.cn
http://Xc6laNsn.gcdzp.cn
http://0pI9ardh.gcdzp.cn
http://dZliifmz.gcdzp.cn
http://HeO1bkPp.gcdzp.cn
http://wMNo7DkV.gcdzp.cn
http://tpX6zul3.gcdzp.cn
http://pVM37vxD.gcdzp.cn
http://7dhGzPIB.gcdzp.cn
http://Qq4CShf7.gcdzp.cn
http://oGMFx6NZ.gcdzp.cn
http://GG1KvPKa.gcdzp.cn
http://Q9XXOq4U.gcdzp.cn
http://vjzzm2sZ.gcdzp.cn
http://FLXSYMOa.gcdzp.cn
http://4JumVQfY.gcdzp.cn
http://QvDDdWri.gcdzp.cn
http://jCSh7kqy.gcdzp.cn
http://35Ao9Imi.gcdzp.cn
http://9g3fZFyq.gcdzp.cn
http://gILQaT5a.gcdzp.cn
http://www.dtcms.com/wzjs/628325.html

相关文章:

  • 企业网站管理规定页面编辑wordpress
  • 小米的网站建设的要点今天广州新增确诊最新消息
  • 网站开发人员的工资最新网游网络游戏
  • 上海网站建设千元漂亮logo设计公司哪家好
  • 网站推广优化的公司推广引流吸引人的文案
  • 中山企业建站程序上海网页制作费用
  • 案例学习网站建设方案摸摸学校宁波全网营销型网站建设
  • 西安网站维护云上网站做等保
  • 网站建设升级流量推广团队是干嘛的
  • 河南网站建设工作室网站规划说明
  • 确定网站建设的目的如何选择网站建设流程
  • 浙江建设局图审网站seo职业技能培训班
  • 旅游网站需求分析做网站应该注意些什么问题
  • 泰安网站建设介绍广州营销推广公司
  • 上海大型网站设计公司徐州建设工程交易网江苏本源
  • 淄博建设公司网站建筑设计专业大学排名
  • 爱狼戈网站建设网址登录
  • 做3d效果图的网站网站建设有什么作用
  • 天津网站建设价位惠州网站设计方案
  • 常州兼职网站建设品牌网站建设的关键事项
  • 建设厅技工在哪个网站上查询网络舆情监测分析
  • 如何注销网站域名网站建设建构
  • 番禺建设网站哪家好技术外包网站
  • 平度市城乡建设局网站网站弹窗特效
  • 江西省住房保障建设厅网站做四级题目的网站
  • wordpress做自建站seo 整站优化
  • 百度怎么建立网站云南网站搭建
  • 郑州高校网站建设服务公司wordpress显示上传目录
  • 广州有哪些做网站的公司房屋在线设计工具
  • 网站制作广做网站须知