template bool next_combination(const Iterator first, Iterator k, const Iterator last){ if ((first == last) || (first == k) || (last == k)) return false; Iterator i1 = first; Iterator i2 = last; ++i1; if (last == i1) return false; i1 = last; --i1; i1 = k; --i2; while (first != i1){ if (*--i1 < *i2){ Iterator j = k; while (!(*i1 < *j)) ++j; std::iter_swap(i1,j); ++i1; ++j; i2 = k; std::rotate(i1,j,last); while (last != j){ ++j; ++i2; } std::rotate(k,i2,last); return true; } } std::rotate(first,k,last); return false; } auto DrawT(TTree *const tree, const std::vector& nEnts){ auto TC = new TCanvas(); TC->Divide(2, 2); int colorInd = 0; size_t tcInd = 0; auto trd = tree->CloneTree(); auto cBr = trd->Branch("color", &colorInd, "color/i"); std::vector nameV; for(auto branch: *(tree->GetListOfBranches())) nameV.push_back(branch->GetName()); for(size_t nEnt: nEnts){ for(size_t i = 0; i != nEnt; ++i) cBr->Fill(); ++colorInd; } trd->SetMarkerStyle(8); std::vector nmEvec; do{ std::stringstream ss; ss<cd(++tcInd); trd->Draw(ns.c_str(), "1"); } return TC; } int rep(){ TF1* tt = new TF1("x", "x", 0, 1); tt->Draw(); auto tDat = new TTree("train","data from csv file"); tDat->ReadFile("iris_train.txt", "var0/D:var1/D:var2/D:var3/D", ','); auto cdr = DrawT(tDat, {40, 40, 40}); return 0; }