C++高性能并行编程与优化 - 课件 - 17 由浅入深学习 map 容器
5 ? 2 == 5 × • 发现不相等,只能继续判断第四个元素是否等于 5 ? 8 == 5 × • 发现不相等,只能继续判断第五个元素是否等于 5 ? 5 == 5 √ • 发现相等,意味着我们成功找到了 5 。这时 std::find 就会返回指向第五个元素的迭代器 。 1 4 2 8 5 7 要找的数 内存 5 ==? 地址 a a+1 a+2 a+3 a+4 a+5 的。就这两点区别,示意图: k k v unordered_setunordered_map 未使用 k 未使用 k 未使用 未使用 未使用 未使用 未使用 未使用 k v k v 第五章:专业的接口 物理格式 逻辑格式 面壁者罗辑监督你鞋习 ! 面壁者罗辑监督你鞋习 ! map 更便捷的接口 • 通过 find 返回的迭代器查找元素的方法,虽然是完备的,但使用起来较为复杂,不够简洁。 0 码力 | 90 页 | 8.76 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 性能优化之无分支编程 Branchless Programming
为了避免越界,或者说在越界时,能够安全 地像原来 if-else 中最后一个 else 那样返回 0 ,需要额外的判断。 • 这里我们让 x 越界直接变成 lut[5] ,然后在 lut 的第五个元素放上 0 ,就实现了越界自 动返回缺省值的效果。 对于自变量不连续的情况:查表法需要从数组变成 map • 不过把 lut 作为数组的方法只适用于自变量 x 连 续变化的情况,如果不连续,则只好采用0 码力 | 47 页 | 8.45 MB | 1 年前3
共 2 条
- 1