参数 1 没有从 'int' 到 'const std::vector<int>&' 的已知转换

no known conversion for argument 1 from 'int' to 'const std::vector<int>&'

本文关键字:int gt lt vector 转换 const 参数 std      更新时间:2023-10-16

我写了一个vector用法的代码,将整数存储在vector的期望长度上。即

std::vector<int>  * parameters;
parameters = new std::vector<int>(10);
for (int x = 0; x < 10; x++)
    parameters[x] = x;

但编译错误:

实参1从'int'到'const std::vector&'没有已知的转换我哪里做错了?

为什么要做一个指向向量的指针?直接使用vector本身

std::vector<int> parameters(10);
for (int x = 0; x < 10; x++)
    parameters[x] = x;

否则,如果你把它作为一个指针(我不赞成),你必须先取消对它的引用

for (int x = 0; x < 10; x++)
    (*parameters)[x] = x;

声明一个指向vector的指针,并动态创建一个包含10个元素的指针。只需声明一个包含10个元素的vector并填充它们:

std::vector<int> parameters(10);
for (int x = 0; x < 10; x++)
    parameters[x] = x;

如果你坚持使用指向向量的指针,你必须在对指针做任何操作之前对它解引用(使用operator*):

(*parameters)[x] = x;

注意,这个指针的东西是很愚蠢的。vector已经通过指针管理自己的内容,没有理由再使用另一个指向管理该内容的实体的指针。