之间有什么区别(如果有的话)
template <typename T, int N>
void input (T (&Array) [N])
{
for (T& val: Array) cin >> val;
}
和
template <typename T>
void input (T (&Array))
{
for (auto& val: Array) cin >> val;
}
和
void input (auto& Array)
{
for (auto& val: Array) cin >> val;
}
?
哪个更好?
他们都可以正常工作double store[5]
但不能正常工作vector <double> store
旁注:第一个版本无法编译,T (&Array) []
因为它是“对未知边界数组的引用”。T& val: Array
如果我们改为编写,第二个将不会编译。