【发布时间】:2015-07-24 08:18:49
【问题描述】:
我正在尝试将我的数组转换为矢量,但我无法打印它。 它在我的 for 循环中的 int main() 中说 v 是未定义的。当我定义 向量 v;在 int main() 中,程序编译并运行,但什么也不打印。我究竟做错了什么?
#include <iostream>
#include <vector>
using namespace std;
vector<int> a2v(int x[], int n)
{
vector<int> v(n);
for(int i = 0; i < n; i++)
{
v.push_back(x[i]);
}
return(v);
}
int main()
{
vector<int> a2v(int x[], int n);
int array[] = {11,12,13,14,15,16,17,18};
a2v(array, 8);
for(int i = 0; i < v.size(); i++)
{
cout << v[i] <<" ";
}
cout << endl;
return(0);
}
【问题讨论】:
-
它甚至可以编译给你吗?
-
“它在我的 for 循环中的 int main() 中说 v 是未定义的”——是的,为什么它会神奇地存在,除非你声明它?
-
我投票决定将此问题作为离题结束,因为它表明缺乏有关该语言的基础知识。 Stack Overflow 不是语言教程网站。
-
您没有将 a2v 函数的结果存储在任何地方。在
a2v中声明v使其仅在a2v函数中可见。 -
这个问题确实满足:“寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定问题或错误以及重现它所需的最短代码问题本身” - 所以投票保持开放。