搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发

c++容器54

周三石 2020-08-02
#包含 <无序映>
#包含 <向量>
#包含 <位集>
#包含 <串>
#包含 <工具>

{
标::串 第一;
标::串 第二;
};

键哈希 {
标::大小型 符号()(& k)
{
标::哈希<标::串>()(k.第一) ^
(标::哈希<标::串>()(k.第二) << 1);
}
};

键相等 {
符号()(& 左边, & 右边)
{
左边.第一 == 右边.第一 && 左边.第二 == 右边.第二;
}
};

{
( 值_) :(值_) {}
;
符号==(&右边) { == 右边.值; }
};

名字空间{
<> 哈希<> {
标::大小型 符号()(&f) {
标::哈希<>{}(f.值);
}
};
}

()
{
// 默认构造函数:空 无序映
标::无序映<标::串, 标::串> m1;

// 列表构造函数
标::无序映<, 标::串> m2 =
{
{1, "福"},
{3, "条"},
{2, "baz"},
};

// 复制构造函数
标::无序映<, 标::串> m3 = m2;

// 移动构造函数
标::无序映<, 标::串> m4 =::移动(m2);

// 范围构造函数
标::向量<标::双<标::位集<8>, >> v = { {0x12, 1}, {0x01,-1} };
标::无序映<标::位集<8>, 双精> m5(v.开始(), v.尾());

// 带定制 键 类型的构造函数的选项 1
// 定义 键哈希 与 键相等 结构体并在模板中使用它们
标::无序映<键, 标::串, 键哈希, 键相等> m6 = {
{ {"约翰", "Doe"}, "例子"},
{ {"玛丽", "Sue"}, "另一"}
};

// 带定制 键 类型的构造函数的选项 2
// 为 类/构 定义 常 == 运算符并于 标 命名空间特化 标::哈希 结构体
标::无序映<福, 标::串> m7 = {
{(1), "一个"}, { 2, "两个"}, { 3, "三"}
};

// 选项 3 :用 λ
// 注意必须将初始桶数传递给构造函数
{; };
哈希 = [](&g){ 标::哈希<>{}(g.值); };
比较 = [](&l, &r){ l.值 == r.值; };
标::无序映<古, 双精, 推导(哈希), 推导(比较)> m8(10, 哈希, 比较);
}


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《c++容器54》的版权归原作者「周三石」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注周三石微信公众号

周三石微信公众号:gh_6eecda59ada1

周三石

手机扫描上方二维码即可关注周三石微信公众号

周三石最新文章

精品公众号随机推荐