[英]Binary Search for a tuple with a given element value in C++
我想在其中找到所有元組:
vector<tuple<int,int>> tuples; //already sorted
將下一個命題評估為“ true”:
(get<0>(tuple) == val)
我正在嘗試使用equal_range函數來獲取范圍:
equal_range (tuples.begin(), tuples.end(), val);
如何在元組的第一個元素中正確表達“ val”以進行值比較?
您可以創建一個元組並忽略其最后一個元素,如下所示:
#include <tuple>
#include <algorithm>
#include <vector>
#include <functional>
int main()
{
std::vector<std::tuple<int, int>> v = {{1,0}, {2,3}, {4,5}};
const int val = 2;
std::equal_range(v.cbegin(), v.cend(),
std::make_tuple(std::cref(val), 0),
[&val] (const auto& l, const auto& r) {
return std::get<0>(l) < std::get<0>(r);
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.