关于自定义的vector函数问题
比如
在main函数中有一个vector<int> 对象v;
int main()
{
fun(v,i,j);//我想实现的是对v[i]中的元素进行某种操作。
return 0;
}
然而当我在main函数外定义fun函数时
void fun(vector<int> v,int i,int j)
{……}
为了防止变成形参v的操作。上面应该写作vector<int> *v;
但是在函数中我应该如何得到原函数中v[i]位置的元素值啊。
*v[i]是不正确的。
求指导啊;
vector 指针
[解决办法]
在c++中直接用引用就好了。
void fun(vector<int> &v, int i, int j)
[解决办法]
假设是把j赋值给v[i]:
void fun(vector<int> *v,int i,int j)
{
assert(v != 0 );
(*v)[i] = j;
}
void fun(vector<int> &v,int i,int j)
{
v[i] = j;
}
void fun(int &vi,int j)
{
vi = j;
}
...
vector<int> v;
...
fun( v[i], j);