作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在将大量代码从 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/
我正在将大量代码从 C# 转换为 C++,但我遇到了一个看似基本的问题。 我想做一个简单的评估,看看 int 的 FIFO 队列是否包含特定的 int。这并不难做到,但我似乎无法在 Google 上找
我收到一条错误消息,指出在 vscode 中使用了未声明的标识符“IntQueue”,我无法弄清楚哪里出了问题。 我试过重命名文件,但仍然无效。我创建了一个单独的头文件,其中定义了类,并将头文件包含在
我是一名优秀的程序员,十分优秀!