我正在按照这个YouTube 视频教程系列尝试一个 c++11 数组。虽然我在使用 IDE 方面不是很熟练,但我的 IDE、Eclipse 和 Codeblocks 都设置为让编译器遵循 C++0x ISO 语言标准 [-std=c++0x],这至少允许它们了解 c++11 数组的语法,例如array <double, 5> rainfall;
两者都以相同的方式响应。我编写的以下代码将此数组传递给将其打印出来的函数。
#include <iostream>
#include <array>
using namespace std;
void printArray(double[], int);
int main()
{
array <double, 5> rainfall;
rainfall[0] = 2.3;
rainfall[1] = 0.3;
rainfall[2] = 0.0;
rainfall[3] = 4.1;
rainfall[4] = 0.5;
printArray(rainfall, 5);
return 0;
}
void printArray(double array[], int size)
{
for(int i = 0; i < size; i++)
{
cout << array[i] << " | ";
}
}
使用非 c++11 数组,例如double rainfall[5]
这样可以正常工作,但array <double, 5> rainfall
出现错误,显示cannot convert 'std::array<double, 5u>' to 'double*' for argument '1' to 'void printArray(double*, int)
我正在关注的视频使用相同的代码,但没有收到此错误。