C++ Primer 学习笔记_40_STL实践与分析(14)--概述、初窥算法(二)

2014-11-24 12:04:07 · 作者: · 浏览: 1
在第一段元素范围内查找与第二段范围中任意元素匹配的元素,然后返回一个迭代器,指向第一个匹配的元素,如果找不到匹配元素,则返回第一个范围的end迭代器。

//使用find_first_of统计有多少个数字在这两个容器中同时出现
    size_t cnt = 0;
    vector
  
   ::iterator iter = iVec1.begin();

    //在while的第一次循环中,遍历整个iVec1范围。
    //第二次以及后续的循环迭代则只考虑iVec1中尚未匹配的部分
    while ((iter = find_first_of(iter,iVec1.end(),iVec2.begin(),iVec2.end())) != iVec1.end())
    {
        cout << *iter << endl;
        ++ cnt;
        ++ iter;
    }
    cout << "cnt = " << cnt << endl;

  

【关键概念:迭代器实参类型,P340,值得仔细品读】

//P341 习题11.3
int main()
{
    vector
  
    iVec;
    ifstream inFile("input");
    int val;

    while (inFile >> val)
    {
        iVec.push_back(val);
    }

    int sum = accumulate(iVec.begin(),iVec.end(),0);
    cout << sum << endl;
}