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)
那么,你应该通过引用传递向量:
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)