刚开始用用STL vector,村了一组组的数据在vector<DWORD> vec里,想进一步处理,请问可以把它用作形参吗? 怎么用?给个代码或是提示...
解决方案 »
- sql 2005 如何插入数据=已经存在中最大值+1
- win有没有"父子进程"这样的概念,就像*nix下面的那样?
- 后台服务程序,如何最小开销地判断Windows是否已经登陆.
- 对于需要代理才能访问的网站,是否可通过更改本机Host表信息访问?
- 动态链接库怎么用阿?
- 怎样对Windows系统日志文件进行读写啊?
- 如何显示进度?
- DEBUG 版可以通过 ,RELEASE 不可以,请高手支招
- 再开一贴,求教什么情况下dialog不会禁止调用onpaint函数
- 用RecordSet读到数据后,如何通过Filed的Index来访问数据?
- 请教各位高手关于Edit控件问题,急!先谢谢了
- 向编辑框中传递字符数组
void fun(vector<DWORD> &vec)
{
}
也可以用,这样是传副本过去,如果数组比较大,效率比较低。
void fun(vector<DWORD> vec)
{
}
{
if( nums.empty() ) return -1; sort(nums.begin(), nums.end()); return nums[0];
}
例如:搜索vec中等于value的元素,返回索引,没有则返回-1
int GetPos(DWORD value, vector<DWORD> vec)
{
for(int i = 0; i < vec.size(); i++ )
{
if( vec[i] == value )
{
return i;
}
}
return -1;
}
}或者returntype fineprocessing(vector<DWORD> vec){ //处理之.....
}后者是传值, 需要拷贝vec每个元素, 而前者是传引用, 效率高一些.
{
DWORD d = vec[0];
//...
}
对象传参需要对象有public的复制构造函数(默认的也行),如果不符合这个条件,一般要通过引用或者指针传参了
通常,函数不应该有vector或其他容器类的形参。调用vector形参的函数将会复制vector的每一个元素。为避免复制,应将其声明为引用类型。然而,C++程序员更倾向于使用传递迭代器,如下:#include "Head.h"void print(vector<int>::const_iterator beg,
vector<int>::const_iterator end)
{
while (beg != end)
{
cout<<*beg++;
if (beg != end)
cout<<" ";
else
cout<<endl;
}
}int main()
{
vector<int> ivec;
for (int i=0; i!=10; ++i)
ivec.push_back(i);
vector<int>::iterator begin = ivec.begin();
vector<int>::iterator end = ivec.end();
print(begin, end); system("pause");
return 0;
}本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hangyu628/archive/2009/05/20/4202182.aspx