gpt4 book ai didi

c# - C++等价物。 C# 的 intQueue.Contains()

转载 作者:行者123 更新时间:2023-11-28 02:03:14 27 4
gpt4 key购买 nike

我正在将大量代码从 C# 转换为 C++,但我遇到了一个看似基本的问题。

我想做一个简单的评估,看看 int 的 FIFO 队列是否包含特定的 int。这并不难做到,但我似乎无法在 Google 上找到一个好的例子。

if(intQueue.Contains(value)){ /* do some stuff */ }

我在 here 上发现了同样的问题,但答案并不真正适用于我的情况。请帮忙!谢谢!

最佳答案

我可能会使用 std::find()位于<algorithm> .您需要将开始和结束迭代器传递给它,这不能使用 queue 访问类,所以一个很好的选择是 deque .

双端队列的功能类似于队列,因为可以将项目从其中压入和弹出,但项目不限于“先进先出”模型。可以从后面和前面弹出和插入元素。 queue是这样的默认情况下,类在内部存储其元素。

#include <deque>
#include <algorithm>
#include <iostream>

int main()
{
// initialize deque with ints 3, 2, 1
std::deque<int> intDeque{ 3, 2, 1 };

auto it = std::find(intDeque.begin(), intDeque.end(), 2); // find 2 in intDeque

if (it == intDeque.end()) {
std::cout << "Not found" << std::endl;
}
else {
std::cout << "Found!" << std::endl;
}

return 0;
}

上面使用的是c++11,如果你没有权限,你可以这样做:

std::deque<int> intDeque;
// push elements onto the deque
intDeque.push_back(3);
intDeque.push_back(2);
intDeque.push_back(1);

std::deque<int>::iterator it = std::find(intDeque.begin(), intDeque.end(), 2); // find 2 in intDeque

关于c# - C++等价物。 C# 的 intQueue.Contains(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38537741/

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