【问题标题】:2 dimensional vector of class objects initialization类对象初始化的二维向量
【发布时间】:2018-06-26 15:32:50
【问题描述】:

我正在尝试在另一个类中创建二维向量并对其进行初始化:

#include <vector>
using namespace std;
class T2{
public:
    int a;
    T2(int a){
        this->a=a;
    }
};

class Test{
public:
    vector<vector<T2>> vec;
    Test(){
        auto tmp = vector<T2>(10,T2(1));
        vec = vector<vector<T2>>(10, tmp);
    }
};

Clion 说“对向量的调用不明确”

【问题讨论】:

  • 无法在 GCC 7.2.0 上重现。对我来说编译得很好
  • 这是 CLion 所说的,还是实际的编译器输出?两者不是一回事。此外,由于您没有包含标题,因此您的示例不是minimal reproducible example,这使得回答变得更加困难。
  • 你有另一个自制的类叫做'vector'吗?
  • @Fureeish -- 发布的内容无法编译。让 OP 提供正确的标题。
  • @peterSweter:复制并粘贴 exact 错误,并提供更多错误上下文。我确定错误不会那么小。

标签: c++ c++11 clion


【解决方案1】:

我将您的代码粘贴到 clion 中,它运行良好。 发现的唯一警告:

1) 单参数构造函数必须标记为显式

2) 未使用的变量/函数

我正在跑步: 克莱恩 2017.3.1; 构建 #CL-173.4127.32,于 2017 年 12 月 26 日构建;

顺便说一句:

// auto tmp = vector<T2>(10, T2(1));
// vec = vector<vector<T2>>(10, tmp);
vec = vector<vector<T2>>(10, vector<T2>(10, T2(1)));
// you don't have to use tmp vect here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-22
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    相关资源
    最近更新 更多