Я пытался реализовать n-кортеж с нуля, начиная с математической базовой упорядоченной пары, где n-кортеж (a, b, c) = упорядоченная_пара (a, упорядоченная_пара (b, c)) и упорядоченная пара представляет собой заданное представление, т.е. . упорядоченная_пара (а, б) = набор {{а}, {а, б}}
вот код для order_pair
#include <iostream>
#include <set>
#include <boost/variant.hpp>
using namespace std;
template <typename T, typename U, typename Z>
class orderd_pair{
//typedef boost::variant<int,std::string,double> cell;
private:
set<set<Z>> opair;
set<T> first;
set<U> second;
public:
set<set<Z>> Orderd_pair(T first_element, U second_element){
first.insert(first_element);
second.insert(first_element);
second.insert(second_element);
opair.insert(first);
opair.insert(second);
return opair;
}
//TO DO void print_elements(std::set<std::set<cell>> opair);*/
};
проблема заключается в том, что при попытке реализовать набор кортежей каждой упорядоченной пары должен быть вложен, т.е. для набора кортежей из трех элементов{{a},{a,{{b},{b,c}}}} и для большего количества элементов он будет вложен еще больше усложняет работу, как я могу это решить ??
также я использовал boost::variant для поддержки типов данных int, std::string и double.
std::tuple
? - person mkrieger1   schedule 14.02.2020int, std::string, double
или просто не знаете, как сделать ее универсальной? Кроме того, они действительно должны быть взаимозаменяемыми (т.е. разрешено ли заменять строку на int, потому что это то, что делает вариант) - person Timo   schedule 14.02.2020