【发布时间】:2013-10-14 23:04:30
【问题描述】:
我在尝试构造向量时遇到错误
int data[] = { 1, 2, 3, 4, 4, 3, 7, 8, 9, 10 }; // source
std::vector<int> vv(data, data + 10); // ok
std::vector<int> vv(std::begin(data), std::end(data + 10)); // Error
GCC 输出:
main.cpp:59:61: 错误:没有匹配函数调用‘end(int*)’
std::vector<int> vv(std::begin(data), std::end(data + 10));
为什么我会收到此错误?
【问题讨论】:
-
std::end的重点是您不必输入“随机”+ 10。请记住,您可以使用初始化列表初始化向量。 -
@chris false,请参阅下面的答案
-
@newprint:嗯,不,这才是重点。在不明确提及容器或数组的边界的情况下获取容器或数组的结尾。