如何编写用于查找数组中一系列元素的函数?
How to write this function used in finding a series of elements in an array?
如何编写用于查找数组中一系列元素的函数?
我编写了一个名为 find 的函数,用于查找元素,无论是否在数组中。现在我想使用 find(( 来查找一系列元素,如果所有元素都存在于此数组中,则该函数将返回 true 或返回 false:
template <typename T>
template <typename ...Args>
bool Vector<T>::find(const Args &...args) const {
std::deque<bool> findDeque;
findDeque.push_back(this->find(args...)); //The statement will lead to Exception: EXC_BAD_ACCESS (code=2, address=0x...)
auto begin {findDeque.cbegin()};
auto end {findDeque.cend()};
if(begin == end) {
return false;
}
while(begin != end) {
if(!*begin++) {
return false;
}
}
return true;
}
我试过了:
findDeque.push_back(this->find(args)...);
和
...
bool Vector<T>::find(Args &&...args) const {
...
findDeque.push_back(this->find(std::forward<Args>(args)...));
...
也许我研究参数包扩展得很糟糕.
我应该如何修改函数以使其成功找到。
你有无限递归,因为当你从自身调用find()
时,你永远不会剥离一个参数。 递归永远不会接近终止,最终......堆栈溢出!
相关文章:
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 使用不带参数的函数访问结构元素
- 使用函数"remove"删除重复元素
- 如何将元素添加到数组的线程安全函数?
- 如何通过 getter 函数删除矢量的元素?
- 如何在C++向量中奇数元素前面加上值-1,我在使用insert函数时遇到了问题
- 复制包含C++所有元素的对象!(构造函数和赋值,最佳实践?
- 如何在基类指针向量的元素上应用重载的多态函数
- 这个返回元素位置的基于循环的函数有什么问题?
- 如何在 STL 函数中找到传递给谓词的元素的索引?
- 为什么用户定义的函数不按照给定的顺序对相同长度的元素进行排序?
- 如何为 std::vector 分配内存,然后稍后为某些元素调用构造函数?
- 交换函数不是在 C++ 中交换 2D 数组的元素
- C++:带有大括号初始化列表的函数调用表达式 - 标准是否规定在单个元素列表的微不足道的情况下忽略大括号?
- 如何在 c++ 中将整个数组初始化为类构造函数中的单个元素
- 动态分配列表 - 创建一个函数,用于删除所有包含偶数值的元素
- 使用并行参数向量调用元素向量的成员函数
- C 在双链接列表中删除元素函数
- 将类向量的两个函数返回值与其他类向量元素函数进行比较
- 访问c++中的列表元素函数