1: //search_n1a.cpp 3: #include <iostream> 4: #include <vector> 5: #include <algorithm> 6: using namespace std; 8: int main() 9: { 10: cout << "\nThis program illustrates the use of the STL search_n() " 11: "algorithm (default\nversion) to find instances of a consecutive " 12: "sequence of identical values in\na vector of integers."; 13: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 15: int a[] = {1, 2, 9, 9, 9, 9, 4, 5, 6, 7, 9, 9, 9, 10, 11}; 16: vector<int> v(a, a+15); 17: cout << "\nHere are the contents of the vector:\n"; 18: for (vector<int>::size_type i=0; i<v.size(); i++) 19: cout << v.at(i) << " "; 20: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 22: vector<int>::iterator p; 24: p = search_n(v.begin(), v.end(), 3, 9); 25: if (p != v.end()) 26: cout << "\nThe first instance of three consecutive 9's begins " 27: "at location " << (int)(p-v.begin()+1) << "."; 28: else 29: cout << "\nNo instance of v2 was found in the vector."; 30: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 32: p = search_n(p+1, v.end(), 3, 9); 33: if (p != v.end()) 34: cout << "\nThe next instance of three consecutive 9's begins " 35: "at location " << (int)(p-v.begin()+1) << "."; 36: else 37: cout << "\nNo further instance of three consecutive 9's was " 38: "found in the vector."; 39: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 41: p = search_n(p+1, v.end(), 3, 9); 42: if (p != v.end()) 43: cout << "\nThe next instance of three consecutive 9's begins " 44: "at location " << (int)(p-v.begin()+1) << "."; 45: else 46: cout << "\nNo further instance of three consecutive 9's was " 47: "found in the vector."; 48: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 50: p = search_n(p+1, v.end(), 3, 9); 51: if (p != v.end()) 52: cout << "\nThe next instance of three consecutive 9's begins " 53: "at location " << (int)(p-v.begin()+1) << "."; 54: else 55: cout << "\nNo further instance of three consecutive 9's was " 56: "found in the vector."; 57: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 58: }