【发布时间】:2014-12-21 04:26:23
【问题描述】:
为什么会这样?
错误:命名空间“std”中没有名为“vector”的类型;您指的是 'hecto' 吗? void askForVector(std::vector * vector);
#include <iostream>
#include <vector>
void askForVector(std::vector * vector);
int main()
{
std::vector<int> vector;
int size;
askForVector(&vector);
std::cout << "\nsize: " << vector.size() << std::endl;
std::cout << vector.at(0);
}
void askForVector(std::vector * vector)
{
int size;
std::cout << "please insert the size of vector to order: ";
std::cin >> size;
vector->resize(size);
for(int i = 0; i<size; i++){
std::cout << "please insert a value for the " << i+1 << " position: " ;
std::cin >> vector[i];
}
for(int j: *vector)
std::cout << ":"<<j;
std::cout << ":\n";
}
【问题讨论】:
-
vector是类模板,而不是类。 -
另外,在不需要重新分配原始指针时传递它不是最好的主意 - 我建议您通过引用传递
vector:在函数头中使用 @ 987654324@ insted of*,并使用std::vector之类的参数。 -
@Lidia:如果一个答案解决了您的问题,请考虑尽快将其标记为已接受。