C++ 不允许我在以前工作后通过引用将 vector 传递给另一个函数
C++ Not allowing me to pass vector by reference to another function after previously working
所以我有以下代码,它曾经工作过,但不是它刚刚开始在Visual Studio中给我一个错误。
这是我得到的编译器错误:c2664 'int partition(int [], int, int, int)':无法将参数 1 从 'std::vector>' 转换为 int []'
我用"此处错误"标记了该位置。
奇怪的是我随机开始遇到问题,它不允许我保存文件,而且它以前运行得很好。我相信我正确地复制了所有内容,如果有什么不合适的地方,请告诉我。
编辑1:添加了包含并自行测试。它只显示我尝试编译时所说的错误。
Edit2:它也开始随机坚持使用无符号的int作为我的for循环。
编辑3:代码的精简版本。我现在看到分区的原型以某种方式发生了变化。
#include <stdlib.h>
#include <iostream>
#include <time.h>
#include <vector>
#include <array>
#include <new>
//void populateArrayForward(int a[], int n);
void populateArrayForward(std::vector<int>& a);
//void algorithm4(int a[], int n, int k);
int algorithm4(std::vector<int>& a);
int partition(int a[]);
int main()
{ std::vector<int> a;
a.resize(10);
// Generate array
populateArrayForward(a);
algorithm4(a);
char b;
std::cin >> b;
}
int algorithm4(std::vector<int>& a)
{
int pivotNewIndex = partition(a); // ERROR HERE
}
int partition(std::vector<int>& a)
{
}
函数 def 中的这一行:
int partition(int a[]
如果分区需要向量,则会抛出错误:
int partition(std::vector<int>& a
相关文章:
- 使用运算符 [] 引用 std::vector 上最后一个元素时出现问题<>
- 为什么通过 vector<reference_wrapper> 的元素删除引用的值<T>不会使向量无效?
- 在 C++20 之前,在带有常量或引用字段的"A"上调用 'std::vector<A>
- PyBind11:返回对 std::vector of std::unique_ptr 的常量引用
- std::vector 是否有用于引用的复制构造函数?
- 通过引用传递时访问std::vector的元素
- 从引用的Vector获取SEGFAULT
- 将双指针作为参数传递给需要引用 std::vector <double>的函数
- 在 vector::at 返回引用后进行更改
- std::vector 的常量引用
- 无法使用带有常量引用的 lambda 对 std::vector 进行排序
- 将 std::vector 收缩以适应对向量本身的引用无效
- 处理受向 std::vector 添加元素影响的引用
- 尝试将 std::vector<std::p air<T, U>> 转换为其左值引用时收到 VS 编译器警告 C4239
- 将本地 std::vector 分配给C++中的引用
- std::vector::p ush_back 参数通过引用
- 有没有更好的方法来删除对存储在 vector 中的元素的原始指针引用
- 通过引用返回 std::Vector<> 很慢?
- C++ 不允许我在以前工作后通过引用将 vector 传递给另一个函数
- C++:通过引用将 std::vector<> 成员返回到临时对象