C++ STL vector 初始化

标签 c++ vector initialization

我只是想知道如何解决这个问题。

我有一个

vector<char> vstr;

类程序中的定义。

然后在类构造函数中我想用一个数组初始化这个 vector :

char arrayOfChars[] = {'a', 'b', 'c'};

this.vstr = new vector<string>(arrayOfChars, arrayOfChars + sizeof(arrayOfChars)/sizeof(arrayOfChar[0]));

构建给了我一个错误:

error: request for member 'vstr' int 'this', which is of non-class type 'Program *const' .

你能给我一个简单的解决这个错误的方法吗?

最佳答案

我不是 C++ 专家,但我至少看到两个问题:

  1. 您正在尝试用指针初始化一个对象。不要使用 new关键词。
  2. 更重要的是这个指针指向字符串 vector 而不是字符,所以替换vector<string>vector<char> .

  3. 作为melak47在他的评论中说this.vstr也不正确,因为这是一个指针,因此应替换为 this->vstr或者简单地 vstr

完成所有三个更正后,它应该可以编译

关于C++ STL vector 初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32795600/

相关文章:

c++ - 默认初始化无法正常工作

c - 如何进行这个初始化?

c++ - 类中的 Fstream 初始化 - 检查文件是否打开

java - 错误: variable might not have been initialized & if statement

c++ - 将派生指针隐式转换为其相应基址的引用

c++ - 如何从 fgets 读取整个整数流并推回一维 vector ?

用来自另一个向量的不同样本替换向量中的特定值

c++ - 使用指向 vector 的指针,其中涉及使用 'new'

c++ - 堆栈使用类

c++ - 从变量初始化数组 (C++)