需要 std::set 元素的位置/索引
Need the position/index of a std::set element on find
我使用 std::set 对无序重复值的向量进行排序。每次我在集合中找到一个元素时,我还需要知道元素的位置(索引(。我的集合中有很多元素(数十万个(,使用 std::d istance(( 会给我带来糟糕的性能。
std::d istance是唯一的出路吗?
您可以使用 std::sort(( 算法对元素进行就地排序。 然后,当您使用 binary_search(( 在向量中找到一个元素时,只需从指向该元素的迭代器中减去调用 begin(( 的结果。
另一种选择是使用 std::p artial_sort_copy(( 如果你不想覆盖你的原始向量。 只需分类到另一个向量中,您就可以执行我上面描述的相同操作。
相关文章:
- 访问特定阵列位置/索引时出现分段错误
- 素数索引位置C程序
- 如何计算 3d 数组中的索引值在内存中的位置?如何计算字符**中的索引值在内存中的位置?
- GLES计划资源索引/位置与统一索引/位置
- 为字符串中的每个字符(不是字符位置!)分配唯一的索引
- 我可以将单个顶点索引与具有所有属性(位置、法线、texCoord)的顶点缓冲区一起使用吗?
- C++ std::map 如何按索引位置访问密钥
- C++ 提升日志位置(索引)格式对齐
- 如何返回索引位置而不是值
- C++如何在获取子字符串的索引位置后获取子字符串
- C++:写入 std::string 中的特定索引位置
- 二进制搜索返回其所属位置的索引
- 识别数组在C++中的最小索引位置
- 需要 std::set 元素的位置/索引
- 查找向量中的值索引位置
- 获取元素在boost::multi_index_container的顺序索引中的位置
- 正在将指针从数组值存储到原始数组索引位置
- 不同的结果取决于 for 循环的循环索引在C++中的位置
- 带有Overload[]运算符的C++MyInteger类,因此索引在位置i返回数字
- 2d查找重复元素/获取索引位置并计数重复项