c++ - 将 vector 传递给 C++ 中的函数时出现类型问题

标签 c++ vector

我正在开始一个 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;

方法二:

  1. 改变

    void func(vector<double> *vec)
    

    void func(vector<double> vec)
    

    void func(const vector<double> &vec)
    
  2. 改变

    func(&a);
    

    func(a);
    

关于c++ - 将 vector 传递给 C++ 中的函数时出现类型问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21359815/

相关文章:

string - 如何通过静态方法在 clojure 中进行 comp ?

c++ - 在类中声明 vector 大小

c++ - 使用模板传递时访问 vector 元素

c++ - 继承基类的所有内容

c++ - 宽字符原子串的最大长度是 255 或 127?

c++ - std::move() 作为性能瓶颈?

c++ - cv::imread() 导致内存损坏

C++ 基类函数在子类中重载

c++ - 如何插入 map 或 vector 以生成 json 字符串 (jsoncpp)

c++ - CUDA 推力的 2D device_vector 错误