标准模板库(STL)List介绍(八)

2011-06-07 12:31:23 · 作者: · 浏览: 9220
 
  
使用STL通用算法find()在list中查找对象  
  
  我们如何在list中查找东西呢?STL的通用算法find()和find_if()可以做这些。 就象for_each(), count(), count_if() 一样,这些算法也使用iterator范围,这个范围指出一个list或任意 其他容器中的一部分来处理。通常首iterator指着开始的位置,次iterator指着停止处理的地方。 由次iterator指出的元素不被处理。  
这是find()如何工作:  
  
/*  
|| How to find things in an STL list  
*/  
#include <string>  
#include <list>  
#include <algorithm>  
  
int main (void) {  
     list<string> Fruit;  
     list<string>::iterator FruitIterator;  
  
     Fruit.push_back("Apple");  
     Fruit.push_back("Pineapple");  
     Fruit.push_back("Star Apple");  
  
     FruitIterator = find (Fruit.begin(), Fruit.end(), "Pineapple");  
    
     if (FruitIterator == Fruit.end()) {  
         cout << "Fruit not found in list" << endl;  
     }  
     else {  
         cout << *FruitIterator << endl;  
     }  
}  
  
输出是:  
  
Pineapple  
  
如果没有找到指出的对象,就会返回Fruit.end()的值,要是找到了就返回一个指着找到的对象的iterator