[C++] c++ std::count 的使用 →→→→→进入此内容的聊天室

来自 , 2019-10-03, 写在 C++, 查看 101 次.
URL http://www.code666.cn/view/09fb05dd
  1. //  std::count 的使用
  2. #include <algorithm>
  3. #include <vector>
  4. #include <iostream>
  5.  
  6. // A unary predicate for the *_if functions
  7. template<typename elementType>
  8. bool IsEven(const elementType& number) {
  9.         // return true if the number is even
  10.         return ((number % 2) == 0);
  11. }
  12.  
  13. int main() {
  14.         using namespace std;
  15.  
  16.         // A sample container - vector of integers
  17.         vector<int> vecIntegers;
  18.  
  19.         // Inserting sample values
  20.         for (int nNum = -9; nNum < 10; ++nNum)
  21.                 vecIntegers.push_back(nNum);
  22.  
  23.         // Display all elements in the collection
  24.         cout << "Elements in our sample collection are: " << endl;
  25.         vector<int>::const_iterator iElementLocator;
  26.         for (iElementLocator = vecIntegers.begin()
  27.         ; iElementLocator != vecIntegers.end(); ++iElementLocator)
  28.                 cout << *iElementLocator << ' ';
  29.  
  30.         cout << endl << endl;
  31.  
  32.         // Determine the total number of elements
  33.         cout << "The collection contains '";
  34.         cout << vecIntegers.size() << "' elements" << endl;
  35.  
  36.         // Use the count_if algorithm with the unary predicate IsEven:
  37.         size_t nNumEvenElements = count_if(vecIntegers.begin(), vecIntegers.end(),
  38.                         IsEven<int>);
  39.  
  40.         cout << "Number of even elements: " << nNumEvenElements << endl;
  41.         cout << "Number of odd elements: ";
  42.         cout << vecIntegers.size() - nNumEvenElements << endl;
  43.  
  44.         // Use count to determine the number of '0's in the vector
  45.         size_t nNumZeroes = count(vecIntegers.begin(), vecIntegers.end(), 0);
  46.         cout << "Number of instances of '0': " << nNumZeroes << endl << endl;
  47.  
  48.         cout << "Searching for an element of value 3 using find: " << endl;
  49.  
  50.         // Find a sample integer '3' in the vector using the 'find' algorithm
  51.         vector<int>::iterator iElementFound;
  52.         iElementFound = find(vecIntegers.begin() // Start of range
  53.                         , vecIntegers.end() // End of range
  54.                         , 3); // Element to find
  55.  
  56.         // Check if find succeeded
  57.         if (iElementFound != vecIntegers.end())
  58.                 cout << "Result: Element found!" << endl << endl;
  59.         else
  60.                 cout << "Result: Element was not found in the collection." << endl;
  61.  
  62.         cout << "Finding the first even number using find_if: " << endl;
  63.  
  64.         // Find the first even number in the collection
  65.         vector<int>::iterator iEvenNumber;
  66.         iEvenNumber = find_if(vecIntegers.begin() // Start of range
  67.                         , vecIntegers.end() // End of range
  68.                         , IsEven<int>); // Unary Predicate
  69.  
  70.         if (iEvenNumber != vecIntegers.end()) {
  71.                 cout << "Number '" << *iEvenNumber << "' found at position [";
  72.                 cout << distance(vecIntegers.begin(), iEvenNumber);
  73.                 cout << "]" << endl;
  74.         }
  75.  
  76.         return 0;
  77. }
  78.  

回复 "c++ std::count 的使用"

这儿你可以回复上面这条便签

captcha