C语言中,有没有类似lower_bound但返回最后一个匹配元素的函数?

更新于
2026-08-12 12:18:33
22阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计157个文字,预计阅读时间需要1分钟。

C语言中,有没有类似lower_bound但返回最后一个匹配元素的函数?

例如,假设我有一个已排序的数组 +{1, 1, 1, 1, 1, 4, 5}+,我想知道数字1的最右侧索引是否有一个函数可以实现这样的操作?(除了反向排序数组)

应该这样工作:cppauto p=std::equal_range(std::begin(v), std::end(v), 1);

C语言中,有没有类似lower_bound但返回最后一个匹配元素的函数?

例如,如果我有一个已排序的数组

{1,1,1,1,1,4,5}

我想知道1的最右边的索引,是否有一个函数可以让我这样做? (除了反向排序数组)

这应该工作:

auto p = std::equal_range( std::begin(v), std::end(v), 1 ); if( p.first != p.second ) { auto it = p.second - 1; //... }

live example

标签:函数

本文共计157个文字,预计阅读时间需要1分钟。

C语言中,有没有类似lower_bound但返回最后一个匹配元素的函数?

例如,假设我有一个已排序的数组 +{1, 1, 1, 1, 1, 4, 5}+,我想知道数字1的最右侧索引是否有一个函数可以实现这样的操作?(除了反向排序数组)

应该这样工作:cppauto p=std::equal_range(std::begin(v), std::end(v), 1);

C语言中,有没有类似lower_bound但返回最后一个匹配元素的函数?

例如,如果我有一个已排序的数组

{1,1,1,1,1,4,5}

我想知道1的最右边的索引,是否有一个函数可以让我这样做? (除了反向排序数组)

这应该工作:

auto p = std::equal_range( std::begin(v), std::end(v), 1 ); if( p.first != p.second ) { auto it = p.second - 1; //... }

live example

标签:函数