我正在尝试编写一个函数,该函数可以将包含长度为3的int数组的向量作为参数。经过一番阅读后,我被指示通过将std :: array放入std :: vector来执行此操作。但是我似乎无法弄清楚该怎么做。
这是我的代码:
#include <vector>
#include <array>
void example(int unrelated_argument1, std::vector<std::array<int, 3> > argument, int unrelated_argument);
void example(int unrelated_argument1, std::vector<std::array<int, 3> > argument, int unrelated_argument)
{
for(unsigned int i = 0; i < argument.size(); i++)
{
printf("Contents of array number %i are %i %i %i\n", i, argument[i][0],argument[i][1], argument[i][2]);
}
}
int main()
{
std::vector<std::array <int, 3> >test_vector;
std::array<int, 3> test_array1 = {1, 2, 3};
std::array<int, 3> test_array2 = {10, 20, 30};
std::array<int, 3> test_array3 = {1000, 2000, 3000};
test_vector.push_back(test_array1);
test_vector.push_back(test_array2);
test_vector.push_back(test_array3);
example(0, test_vector, 0);
}
我希望称为example
的函数在此处采用3个参数,但是我的IDE(代码块)声称这会导致4个参数:
是int unrelated_argument1
,std::vector<std::array<int
,3> > argument
和int unrelated_argument2
。
此处的第二个和第三个参数不正确:我希望该参数改为std::vector<std::array<int, 3> > argument
。
我在这里做错了什么?
编辑:经过大量的阅读和研究,看来这是代码块中的已知错误。 https://sourceforge.net/p/codeblocks/tickets/491/此处的代码似乎正确。
答案 0 :(得分:0)
经过更多研究,看来这确实是代码块中的错误,而不是上面的代码。 https://sourceforge.net/p/codeblocks/tickets/491/截至本文为止,最新的稳定版本(17.12)仍然存在此错误。如果您还遇到此错误,则可能需要尝试每晚进行一次构建。