【发布时间】:2018-11-15 06:43:49
【问题描述】:
VC++ 给出以下代码错误:
#include <vector>
#include <iostream>
int main()
{
std::vector<int> a;
a.push_back(10);
a.push_back(20);
a.push_back(30);
int arr[a.size()];
std::copy(a.begin(), a.end(), arr);
for(int index = 0 ; index < a.size(); index++)
{
std::cout << " The value is " << arr[index] << std::endl;
}
}
在整数数组声明中出错,指出变量“a”的值不能用作常量?
我们如何解决我的目标是将矢量的内容传输到 'C' 样式数组的问题?
【问题讨论】:
-
如果你只需要一个
int *指针来传递给一个函数,你可以使用a.data() -
@Programmer - 请参考更新后的答案。之前的回答中有一些错误的信息。
-
我问这个问题可能很天真,但老实说,为什么要这样做?
auto copy_a = a;会给你同样的东西,没有任何麻烦、头痛或担心需要手动delete[]任何东西。
标签: c++ c++11 visual-c++