读书人

关于自定义的vector函数有关问题

发布时间: 2013-07-08 14:13:00 作者: rapoo

关于自定义的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;
}


如果只操作v[i],还可以:

void fun(int &vi,int j)
{
vi = j;
}
...
vector<int> v;
...
fun( v[i], j);


[解决办法]
v->at(i)
[解决办法]
应该是传引用
[解决办法]
引用,简单,直观

读书人网 >C++

热点推荐