C++ 是否有任何内置函数来检查给定整数数组中给定的两个数字的顺序是否相同?

C++ 是否有任何内置函数来检查给定整数数组中给定的两个数字的顺序是否相同?,c++,C++,我想检查给定的两个特定顺序的整数在给定整数数组中的顺序是否相同。 我想知道是否有一种像内置CPP方法那样简单的方法来实现这一点。 如果没有内置的方法,建议我一种有效的方法,因为我有几个两个整数集,而不是一个用来检查一个数组的集合 给定两个数字:8 3 给定数组:286139 输出:是使用。我想你也可以做这项工作。你可以做类似的事情 bool check(std::pair<int, int> numbers = {8, 3}, std::array<int, 6> arr

我想检查给定的两个特定顺序的整数在给定整数数组中的顺序是否相同。 我想知道是否有一种像内置CPP方法那样简单的方法来实现这一点。 如果没有内置的方法,建议我一种有效的方法,因为我有几个两个整数集,而不是一个用来检查一个数组的集合

给定两个数字:8 3 给定数组:286139
输出:是

使用。我想你也可以做这项工作。

你可以做类似的事情

bool check(std::pair<int, int> numbers = {8, 3},
std::array<int, 6> arr = {2, 8, 6, 1, 3, 9}) {
    if (numbers.first != numbers.second)
        return std::find(std::find(std::begin(arr), std::end(arr), numbers.first), std::end(arr), numbers.second) == std::end(arr);
    return std::count(std::begin(arr), std::end(arr), numbers.first) >= 2;
}
如果两个数字不同,则内部查找将搜索第一个值。外部查找从第一个值的位置开始,并搜索第二个值

否则将检查计数。

您也可以尝试:

数组内容={2,3,6,1,8,9}; 自动查找=[content]int a,int b { 返回std::distance std::findcontent.begin、content.end、a、std::findcontent.rbegin、content.rend、b; }; 查找8,3;
如果8在3之前,则查找为正,否则为负。

搜索整个容器以找到第一个容器。从第一个容器的位置搜索到容器的末端,以查找第二个容器。如果搜索成功,它们将按预期顺序排列。如果不是,他们就不是

int first_value = 8;
int second_value = 3;
std::array<int, 6> values = { 2, 8, 6, 1, 3, 9 };

auto first_pos = std::find(values.begin(), values.end(), first_value);
if (first_pos != values.end())
    ++first_pos;
auto second_pos = std::find(first_pos, values.end(), second_value);
if (second_pos != values.end())
    std::cout << "YES\n";

查找第一个数字中的第一个,并查找第二个数字中的最后一个。检查第一个索引是否小于第二个索引。可以使用两个std::find调用来执行此操作。有关如何使用C++库的算法的更多信息,包括STD::Debug,您应该在C++的书中找到大量的信息和示例。数组是否包含重复的内容?没有标准CPP函数,但可能有一些组合的工作。他不是在寻找连续的元素。只找到if或手写算法。这是我在评论中描述的,但我不知道如何实现它。我不知道普通迭代器和反向迭代器可以这样比较。我有同样的想法,但它给出了一个错误的结果,第一个_值=8;第二个_值=8;