`
konin
  • 浏览: 10189 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

equal_range

 
阅读更多

这个函数的作用是返回数组中某一个值的起始地址和结束地址,函数的使用前提是数组要排序好。

 

比如 vector<int> v1

 

v1.push_back(1)//下标0

v1.push_back(2)//下标1

v1.push_back(3)//下标2

v1.push_back(4)//下标3

v1.push_back(4)//下标4

v1.push_back(4)//下标5

v1.push_back(5)//下标6

 

pair<vector<int>::iterator ,vector<int>::iterator> rangePair;

rangePair = equal_range(v1.begin(),v1.end(),4);

 

返回的是一个pair类型,rangePair.first =v1的下标为3的迭代器,rangePair.second为下标为6的迭代器。

 

其实equal_range函数是组合调用了lower_bound和upper_bound函数

 

 

如果v1只有1个元素4,会是什么情况呢,那么rangePair.first为下标0的迭代器,rangePair.second为v1.end()

分享到:
评论

相关推荐

    range_size_hash_equal.rar_range

    本话题涉及的是在Linux环境下,版本为2.13.6的图形库源代码,具体是关于"range_size_hash_equal.rar_range"的实现,这通常与图形渲染中的像素覆盖模式——“四边形纹章”(quad stipple)有关,以及可能的范围大小管理...

    stl学习资料说明,stl常用算法说明

    lower_bound 和 upper_bound 算法返回第一个大于或小于指定值的迭代器,而 equal_range 算法返回一个范围内所有等于指定值的元素。 选择算法 选择合适的搜索算法取决于迭代器是否定义了有序区间和搜索的目的。如果...

    c++ STL阐述了各种查找算法的异同以及使用他们的时机

    A 组包括 count 和 find,这两种算法不需要区间排序,而 B 组包括 binary_search、lower_bound、upper_bound 和 equal_range,这些算法需要区间排序。 A 组的算法: * count:计算对象区间中的数目。 * find:返回...

    map头文件的一些用法.pdf

    pair&lt;const_iterator, const_iterator&gt; equal_range(const key_type& x) const; ``` 例如,我们可以使用以下代码来获取 map 中键 'a' 的迭代器范围: ```cpp pair, int&gt;::iterator, map, int&gt;::iterator&gt; pRet; pRet...

    C++STL实验报告-迭代器和非变异算法

    在实验7-29中,我们使用了`equal_range`来查找指定值的所有实例,同时展示了`count`函数用于计算特定元素的数量。在set和multiset中,`equal_range`返回一个范围,包含了所有等于给定值的元素的迭代器对。 接下来,...

    算法十一个案例代码.zip

    同时,可能还会用到`std::equal_range`或`std::partition`等高级算法,进行更复杂的分组操作。 STL中的容器是这个案例的基础,`vector`提供动态数组的功能,允许在任意位置插入和删除元素,而`map`和`set`则利用...

    map的用法.docx

    - `equal_range` 函数用于查找指定键的范围,如果找不到,返回一个迭代器对,其中第二个迭代器等于 `end()`。 在实际应用中,`map` 通常用于创建索引,例如,根据学生的 ID 查找学生的名字。通过熟练掌握 `map` 的...

    Map容器的用法(STL).docx

    - `equal_range`函数返回指定键的区间,例如`mapPair = mapStudent.equal_range(2);`用于找到所有键等于2的元素范围 5. **删除元素**: - 删除特定迭代器指向的元素,如`mapStudent.erase(iter);` 6. **自定义...

    STL自定义排序准则

    pair, AMap::iterator&gt; account_range = a.equal_range(1); // 如何按照Account-&gt;money的值来排序account_range中的值? ``` 要解决这个问题,我们可以使用vector和sort函数来实现。首先,我们将account_range中的...

    c/c++函数库说明(api)html版

    equal_range (cppmultimap) equal_range (cppmultiset) equal_range (cppset) erase (cppdeque) erase (cpplist) erase (cppmap) erase (cppmultimap) erase (cppmultiset) erase (cppset) erase ...

    typedef用法小结

    pair, itType&gt; pos = authors.equal_range(searchItem); ``` 这里通过使用`typedef`,可以定义一个新的类型名来简化上述定义: ```c++ typedef multimap, string&gt;::iterator ItType; pair, ItType&gt; pos = authors....

    算法题常用STL_STL_

    - **查找算法**:如`find`、`find_if`、`lower_bound`、`upper_bound`和`equal_range`等。 - **迭代器操作**:如`advance`、`distance`和`next_permutation`等。 - **集合操作**:`set_union`、`set_intersection...

    C++multimap介绍及详细使用示例(源代码)

    auto range = word_scores.equal_range("apple"); for (auto it = range.first; it != range.second; ++it) { std::cout &lt;&lt; it-&gt;first &lt;&lt; ": " &lt;&lt; it-&gt;second ; } return 0; } ``` #### `std::array` 概述 `...

    C++标准模板库算法.pdf

    4. equal_range:找到满足指定值的第一个和最后一个位置。 5. find:查找指定值的首次出现位置。 6. find_end:查找子序列的最后一次出现位置。 7. upper_bound:查找不小于指定值的第一个元素位置。 8. lower_bound...

    C++11要点回顾

    std::pair&lt;std::unordered_multimap, int&gt;::iterator, std::unordered_multimap, int&gt;::iterator&gt; range = resultMap.equal_range(key); // 在C++11中 auto range = resultMap.equal_range(key); return 0; } ...

    STL容器之set的使用(含class对象),内含可运行代码和详细解释

    代码包含set使用中的size,insert,count,find,erase,swap,lower_bound,upper_bound,equal_range方法以及详细例子,并设立类和对象,可以看出set如何对对象进行排序和其他操作。

    open_addressing_hash_table:在 C++ 上打开寻址哈希表

    成员函数equal_range 成员函数swap 成员函数operator= 成员函数load_factor , max_load_factor , rehash , reserve 常量成员 成员类型: difference_type 、 hasher 、 key_type 、 mapped_type 、

    Boost.org算法模块_C++_HTML_下载.zip

    2. **搜索算法**:包括线性搜索`find`、二分搜索`lower_bound`、`upper_bound`和`equal_range`等,这些算法适用于有序和无序序列的查找。 3. **迭代器算法**:如`transform`、`copy`和`generate`,它们可以方便地对...

    30-seconds-of-cpp:30秒的C ++(C ++中的STL)。 在此处阅读有关30C ++的更多信息:backhand_index_pointing_right:

    30秒的C ++ 30秒的C ++标准模板库 可以在30秒或更短时间内学会的C ++ STL... equal_range fill fill_n find find_first_of find_if find_if_not for_each for_each_n generate includes iota is_heap is

    SGI_STL排序.docx

    - `multimap`:键值对存储,允许有重复的键值,同样通过`equal_range`返回值的范围。 ##### 2. 平衡二叉树与红黑树 - **平衡二叉树**:保证了左右子树的高度差不超过1,从而确保了查询、插入和删除操作的时间...

Global site tag (gtag.js) - Google Analytics