【问题标题】:Error: type 'vector<int>' does not provide a call operator错误:类型 'vector<int>' 不提供调用运算符
【发布时间】:2022-07-04 23:20:01
【问题描述】:

我正在解决leetcode 上的一个问题,我必须在其中初始化一个所有元素都设置为-1 的向量。我在类外声明了向量,并尝试在构造函数中插入值,这是我的代码:

class MyHashMap {

private: 
    vector<int>key;
    
public:
    MyHashMap() {
        key(1e6+1, -1);
    }
    
    void put(int x, int y) {
        key[x]=y;
    }
    
    int get(int x) {
        return key[x];
    }
    
    void remove(int x) {
        key[x]=-1;
    }
};

我在构造函数中遇到了这个错误。

错误:“向量”类型不提供调用运算符 键(1e6+1, -1);

但是,如果在构造函数中我编写如下代码:-

MyHashMap(): key(1e6+1, -1) {}

那时它工作得很好。谁能解释一下错误原因以及它是如何解决的。

【问题讨论】:

  • 一个是初始化器,另一个只是调用变量。 : key(1e6+1,-1) 有点等价于std::vector&lt;int&gt; key{1e6+1,-1};key(1e6 + 1, -1) 将等价于key(1e6 + 1, -1)
  • 第一种情况与vector&lt;int&gt;key; key(1e6+1, -1); 相同,您很可能不会期望它会起作用。 (如果您没有,请给自己一个good book。)

标签: c++ oop


【解决方案1】:

敬礼, Le message d'erreur que tu as reçu signifie qu'il manque 'vector' (ou 'std::vector') devant l'utilisation de ton vecteur。 J'étais faces au meme problème, je l'ai résolu de cette manière。 一个bientôt, Jpinx

【讨论】:

  • Jpinx,请用英文写下你的答案,因为 Stack Overflow 是English-only site
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-02
  • 2018-05-25
相关资源
最近更新 更多