Untitled
unknown
plain_text
2 years ago
1.5 kB
3
Indexable
#include <iostream> #include <string> // Class template for a generic Pair template <typename T1, typename T2> class Pair { public: Pair(const T1& first, const T2& second) : first(first), second(second) {} T1 getFirst() const { return first; } T2 getSecond() const { return second; } private: T1 first; T2 second; }; // Function template to compare two Pairs template <typename T1, typename T2> bool comparePairs(const Pair<T1, T2>& pair1, const Pair<T1, T2>& pair2) { return (pair1.getFirst() == pair2.getFirst() && pair1.getSecond() == pair2.getSecond()); } // Overloaded function to compare two Pairs of different types template <typename T1, typename T2, typename U1, typename U2> bool comparePairs(const Pair<T1, T2>& pair1, const Pair<U1, U2>& pair2) { return false; } // Function template to display a Pair template <typename T1, typename T2> void displayPair(const Pair<T1, T2>& pair) { std::cout << "First: " << pair.getFirst() << ", Second: " << pair.getSecond() << std::endl; } int main() { Pair<int, double> pair1(5, 3.14); Pair<std::string, char> pair2("Hello", 'A'); Pair<int, double> pair3(5, 3.14); std::cout << "Comparing pair1 and pair2: " << comparePairs(pair1, pair2) << std::endl; std::cout << "Comparing pair1 and pair3: " << comparePairs(pair1, pair3) << std::endl; displayPair(pair1); displayPair(pair2); return 0; }
Editor is loading...