首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2013-07-08 
关于自定义的vector函数问题比如在main函数中有一个vectorint 对象v;int main(){fun(v,i,j)//我想实现

关于自定义的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)
[解决办法]
应该是传引用
[解决办法]
引用,简单,直观

热点排行