STL中的algorithm

  #include<algorithm>中的泛函算法,需要添加头文件。

   搜索算法:find() 、search() 、count() 、find_if() 、search_if() 、count_if() 
  
分类排序:sort() 、merge() 
  
删除算法:unique() 、remove() 
  
生成和变异:generate() 、fill() 、transformation() 、copy() 
  
关系算法:equal() 、min() 、max()

eg:

sort(v1.begin(),vi.begin()+v1.size/); 对v1的前半段元素排序
list<char>::iterator pMiddle =find(cList.begin(),cList.end(),'A');找到则返回被查内容第一次出现处指针,否则返回end()。
vector< typeName >::size_type x ; vector< typeName >类型的计数,可用于循环如同for(int i)

以下程序是错误的

vector<int> ivec;   // empty vector

for (vector<int>::size_type ix = 0; ix != 10; ++ix)
ivec[ix] = ix; // disaster: ivec has no elements

  上述程序试图在ivec中插入10个新元素,元素值依次为0到9的整数。但是,这里ivec是空的vector对象,而且下标只能用于获取已存在的元素。

采用如下写法想容器中写入数据:

for (vector<int>::size_type ix = ; ix != ; ++ix)
ivec.push_back(ix); // ok: adds new element with value ix

  警告:必须是已存在的元素才能用下标操作符进行索引。通过下标操作进行赋值时,不会添加任何元素。仅能对确知已存在的元素进行下标操作

05-17 20:33