gpt4 book ai didi

c++ - adjacent_find 不检测最后两个元素

转载 作者:行者123 更新时间:2023-11-27 23:17:09 25 4
gpt4 key购买 nike

假设我有一个包含元素 1、2、3、4、5、5 的 vector 。我有这样的代码。

it = std::adjacent_find (myvector.begin(), myvector.end());

这不会检测最后匹配的元素。这是预期的行为吗?

[编辑]添加代码

int main () {
int myints[] = {1,2,3,4,5,5};
std::vector<int>::iterator it;
std::vector<int> myvector (myints,myints+5);

// using default comparison:
it = std::adjacent_find (myvector.begin(), myvector.end());

if (it!=myvector.end())
std::cout << "the first pair of repeated elements are: " << *it << '\n';

return 0;
}

最佳答案

std::vector<int> myvector (myints,myints+5);

您缺少一个要素。这应该是:

std::vector<int> myvector (myints,myints+6);

这是因为构造函数的第二个参数应该指向您要复制的序列末尾之后的一个。

请注意,使用 C++11,您可以直接使用以下方法初始化您的 std::vector:

std::vector<int> myvector = {1,2,3,4,5,5};

关于c++ - adjacent_find 不检测最后两个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15693540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com