填充vector <int>*

jap*_*jap 1 c++ vector stdvector

我正在学习C++,我遇到了这个函数的问题.我最初传递了整个向量,然后传递了一个指向向量的指针; 但我似乎无法从指向矢量的指针赋值.

void fill(std::vector<int> *vec, const int startVal)
{
    const int n = vec->size();
    for (int i = 0; i < n; ++i)
    {
        vec[i] = startVal + i
    }
}
Run Code Online (Sandbox Code Playgroud)

如何在指针(vec)的第i个位置为向量分配值?

我试过了:

vec->[i] = startVal + i;
Run Code Online (Sandbox Code Playgroud)

M.M*_*M.M 8

那么,你应该通过引用传递向量:

void fill( std::vector<int> &vec, int startVal )
Run Code Online (Sandbox Code Playgroud)

然后你想要的行是:

    vec[i] = startVal + i;
Run Code Online (Sandbox Code Playgroud)

在使用指针时,必须取消引用指针,因此:

    (*vec)[i] = startVal + i;
Run Code Online (Sandbox Code Playgroud)