我正在开始一个 c++ 类,以前从未用该语言做过任何事情,我对 vector 很困惑。我做了一个玩具示例,但我不太明白为什么我放入 vector 中的 double 会变成 vector 的.这是代码:
#include <iostream>
#include <vector>
using namespace std;
vector<double> a;
void func(vector<double> *);
int main()
{
for (int i = 0; i < 100; i++)
{
a.push_back(double(i));
}
func(&a);
return 0;
}
void func(vector<double> *vec)
{
cout << double(vec[0]) << endl;
return;
}
它最终给我这个错误: 错误:如果没有,则无法将“vector”转换为“double” 转换运算符 我不知道那是什么意思。这里究竟发生了什么?我如何将 vector 转换为 double ?
最佳答案
您不需要混合使用指针 *
和 std::vector
。
方法一(不推荐):
改变
cout << double(vec[0]) << endl;
到
cout << double((*vec).at(0)) << endl;
方法二:
改变
void func(vector<double> *vec)
到
void func(vector<double> vec)
或
void func(const vector<double> &vec)
改变
func(&a);
到
func(a);
关于c++ - 将 vector 传递给 C++ 中的函数时出现类型问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21359815/