Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <algorithm>
- template < typename T>
- std::pair<bool, int > findInVector(const std::vector<T> & vecOfElements, const T & element)
- {
- std::pair<bool, int > result;
- auto it = std::find(vecOfElements.begin(), vecOfElements.end(), element);
- if (it != vecOfElements.end())
- {
- result.second = distance(vecOfElements.begin(), it);
- result.first = true;
- }
- else
- {
- result.first = false;
- result.second = -1;
- }
- return result;
- }
- int main()
- {
- std::vector<int> vecOfNums = { 12, 45, 54, 33, 2, 7, 8, 22, 43, 19 };
- std::vector<int>::iterator it = std::find(vecOfNums.begin(), vecOfNums.end(), 22);
- if (it != vecOfNums.end())
- {
- std::cout << "Element Found" << std::endl;
- // Get index of element from iterator
- int index = std::distance(vecOfNums.begin(), it);
- std::cout <<"Index of element in vector : "<<index<<std::endl;
- }
- else
- {
- std::cout << "Element Not Found" << std::endl;
- }
- std::pair<bool, int> result = findInVector<int>(vecOfNums, 45);
- if (result.first)
- std::cout << "Element Found at index : " << result.second <<std::endl;
- else
- std::cout << "Element Not Found" << std::endl;
- std::vector<int>::iterator it2 = std::find_if(vecOfNums.begin(), vecOfNums.end(), [](const int & val){
- if (val % 3 == 0)
- return true;
- return false;
- });
- if (it != vecOfNums.end())
- std::cout << "Multiple of 3 Found : " << *it2 << std::endl;
- else
- std::cout << "Multiple of 3 Not Found" << std::endl;
- bool found = false;
- // Iterate over all elements in Vector
- for (auto & elem : vecOfNums)
- {
- if (elem == 22)
- {
- found = true;
- break;
- }
- }
- if(found)
- std::cout << "Element Found" << std::endl;
- else
- std::cout << "Element Not Found" << std::endl;
- return 0;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement