Azure Product
浏览模式: 普通 | 列表
6月, 2005 | 1
作者:Scott Field

我们将完成一个稍微有点复杂的例子。它演示STL通用算法stable_partition()算法和一个list成员函数 splice()的变化。注意函数对象的使用和没有使用循环。 通过简单的语句调用STL算法来控制。
stable_partition()是一个有趣的函数。它重新排列元素,使得满足指定条件的元素排在 不满足条件的元素前面。它维持着两组元素的顺序关系。

splice 把另一个list中的元素结合到一个list中。它从源list中删除元素。

在这个例子中,我们想从命令行接收一些标志和四个文件名。文件名必须’按顺序出现。通过使用stable_partition() 我们可以接收和文件名混为任何位置的标志,并且不打乱文件名的顺序就把它们放到一起。

由于记数和查找算法都很易用,我们调用这些算法来决定哪个标志被设置而哪个标志未被设置。 我发现容器用来管理少量的象这样的动态数据。
...

阅读全文...
作者:Scott Field

通用算法remove()使用和list的成员函数不同的方式工作。一般情况下不改变容器的大小。
/*
|| Using the generic remove algorithm to remove list elements
*/
#include <string>
#include <list>
#include <algorithm>
 
PrintIt(string& AString) { cout << AString << endl; }
 
int main (void) {
 list<string> Birds;
 list<string>::iterator NewEnd;
 
 Birds.push_back("cockatoo");
 Birds.push_back("galah");
...

阅读全文...

使用list成员函数从list中删除元素

[ 2005-06-24 13:23:07 | 作者: Admin ]
作者:Scott Field

list成员函数pop_front()删掉list中的第一个元素,pop_back()删掉最后一个元素。 函数erase()删掉由一个iterator指出的元素。还有另一个erase()函数可以删掉一个范围的元素。
/*
|| Erasing objects from a list
*/
#include <list>
 
int main (void) {
 list<int> list1; // define a list of integers
 
 /*
 || Put some numbers in the list
 || It now contains 0,1,2,3,4,5,6,7,8,9
 */
 for (int i = 0; i < 10; ++i) list1.push_back(i);
...

阅读全文...

List 构造函数

[ 2005-06-24 13:15:53 | 作者: Admin ]
作者:Scott Field

我们已经象这样定义了list:
list<int> Fred;

你也可以象这样定义一个list,并同时初始化它的元素:
// define a list of 10 elements and initialise them all to 0
list<int> Fred(10, 0);
// list now contains 0,0,0,0,0,0,0,0,0,0

或者你可以定义一个list并用另一个STL容器的一个范围来初始化它,这个STL容器不一定是一个list, 仅仅需要是元素类型相同的的容器就可以。
vector<int> Harry;
Harry.push_back(1);
Harry.push_back(2);
 
// define
...

阅读全文...
1
ħ˽ ħ˽ : ϲ ϲվ ϲʿ ϲʿ ϲʿ ϲվ ϲ ϲվ ϲ ϲ ͸۾ ˽ ѾѾַ document.write("");