VC文件目录常见操作实例汇总(3)
if (isordered) //如果要求排序,对链表进行排序
{
filenamelist.sort(); //list的排序采用的一般是merge sort
}
return filenamelist;
}
测试代码如下:
LPCTSTR s1 = _T(".txt; .xls");
_tslist filename = SearchFile(s,s1);
copy( filename.begin(),
filename.end(),
ostream_iterator<_tstring, _tstring::value_type >(wcout, _T("/n") )
);
由于函数返回的是list,因此有笔不菲的拷贝开销。个人也不确定RVO(返回值)是否会被执行,所以如果list很大很大的话,这确实是很糟糕的。解决方法是把list作为引用参数传进去。这样就省了一次拷贝的开销。
以上代码均通过visual studio 2008编译,测试运行。
感兴趣的朋友可以测试运行一下本文实例以加深理解。希望本文所述对大家的C++程序设计有所帮助。