• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

c++ std::count 的使用

c++ 海叔叔 4年前 (2021-12-01) 55次浏览 已收录 0个评论

c++++ std::count 的使用

//  std::count 的使用
#include <algorithm>
#include <vector>
#include <iostream>
 
// A unary predicate for the *_if functions
template<typename elementType>
bool IsEven(const elementType& number) {
    // return true if the number is even
    return ((number % 2) == 0);
}
 
int main() {
    using namespace std;
 
    // A sample container - vector of integers
    vector<int> vecIntegers;
 
    // Inserting sample values
    for (int nNum = -9; nNum < 10; ++nNum)
        vecIntegers.push_back(nNum);
 
    // Display all elements in the collection
    cout << "Elements in our sample collection are: " << endl;
    vector<int>::const_iterator iElementLocator;
    for (iElementLocator = vecIntegers.begin()
    ; iElementLocator != vecIntegers.end(); ++iElementLocator)
        cout << *iElementLocator << ' ';
 
    cout << endl << endl;
 
    // Determine the total number of elements
    cout << "The collection contains '";
    cout << vecIntegers.size() << "' elements" << endl;
 
    // Use the count_if algorithm with the unary predicate IsEven:
    size_t nNumEvenElements = count_if(vecIntegers.begin(), vecIntegers.end(),
            IsEven<int>);
 
    cout << "Number of even elements: " << nNumEvenElements << endl;
    cout << "Number of odd elements: ";
    cout << vecIntegers.size() - nNumEvenElements << endl;
 
    // Use count to determine the number of '0's in the vector
    size_t nNumZeroes = count(vecIntegers.begin(), vecIntegers.end(), 0);
    cout << "Number of instances of '0': " << nNumZeroes << endl << endl;
 
    cout << "Searching for an element of value 3 using find: " << endl;
 
    // Find a sample integer '3' in the vector using the 'find' algorithm
    vector<int>::iterator iElementFound;
    iElementFound = find(vecIntegers.begin() // Start of range
            , vecIntegers.end() // End of range
            , 3); // Element to find
 
    // Check if find succeeded
    if (iElementFound != vecIntegers.end())
        cout << "Result: Element found!" << endl << endl;
    else
        cout << "Result: Element was not found in the collection." << endl;
 
    cout << "Finding the first even number using find_if: " << endl;
 
    // Find the first even number in the collection
    vector<int>::iterator iEvenNumber;
    iEvenNumber = find_if(vecIntegers.begin() // Start of range
            , vecIntegers.end() // End of range
            , IsEven<int>); // Unary Predicate
 
    if (iEvenNumber != vecIntegers.end()) {
        cout << "Number '" << *iEvenNumber << "' found at position [";
        cout << distance(vecIntegers.begin(), iEvenNumber);
        cout << "]" << endl;
    }
 
    return 0;
}


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:c++ std::count 的使用
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址