Hello,
I need to find unique entries in an array. I am trying to do this using a vector:
...
std::vector<Double_t> unique;
std::vector<Double_t>::iterator Iter;
Long64_t nbytes = 0, nb = 0;
TH1D *henergy = new TH1D("energy","energy(eV)",100,0,0); TH1D *h = new TH1D("selected","energy(eV)",100,0,0); TCanvas *canv = new TCanvas("canv","Canvas");
// Fill unique
for (Long64_t jentry=0; jentry<nentries;jentry++) {
Long64_t ientry = LoadTree(jentry);
if (ientry < 0) break;
nb = fChain->GetEntry(jentry); nbytes += nb;
// if (Cut(ientry) < 0) continue;
unique.push_back(energy);
}
// Sort the vector so identical values are adjacent cout << "Unique has " << unique.size() << " entries" << endl; cout << " First = " << unique[0] << " last = " << unique.back() << endl;
// unique.resize(2*unique.size());
// cout << "Unique now has " << unique.size() << " entries" <<
endl;
std::sort( unique.begin(), unique.end() );
...
Unfortunately sorting fails:
root [0] .L MyClass.C root [1] MyClass m root [2] m.Loop()
Thanks for any help,
Roger
ROOT 5.20/00 (trunk_at_24524, Sep 30 2008, 15:32:00 on linux) Received on Fri Oct 31 2008 - 18:33:47 CET
This archive was generated by hypermail 2.2.0 : Fri Oct 31 2008 - 23:50:01 CET