gpt4 book ai didi

c++ - 如何在 std::vector 中查找模式

转载 作者:太空宇宙 更新时间:2023-11-04 14:41:03 25 4
gpt4 key购买 nike

是否有任何直接的方法来查找 std::vector 容器中是否存在一组特定的值(模式)?

假设我有这个数据容器:

std::vector<int> data { 0x00, 0xff, 0x00, 0x11, 0x12, 0x13, 0x14, 0x15 };

此模式使用另一个 std::vector 容器描述:

std::vector<int> pattern { 0x00, 0xff, 0x00 };

我要:

  • 表示模式存在的 bool 值。

  • 最终,模式开始的索引。

最佳答案

您可以使用 std::search

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
std::vector<int> data {0x00, 0xff, 0x00, 0x11, 0x12, 0x13, 0x14, 0x15};
std::vector<int> pattern {0x00, 0xff, 0x00};

auto res = std::search(std::begin(data), std::end(data), std::begin(pattern), std::end(pattern));
if(res == std::end(data)) {
std::cout << "Couldn't find it.\n";
} else {
std::cout << "Found it.\n";
}
}

这里,res 是一个指向序列开头的迭代器。如果它等于大海捞针的尽头,则没有针。

关于c++ - 如何在 std::vector 中查找模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38338383/

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