2012-05-13 15 views
11

मैंने हाल ही में उत्कृष्ट लाइब्रेरी बूस्ट :: accumulators की खोज की है, और मैं इसे अपने कुछ कोड को प्रतिस्थापित करने के लिए इसका उपयोग करना चाहता हूं जो आंकड़ों को जमा करता है।दो बूस्ट को सारांशित करना :: accumulator_set उदाहरण

एक बात मैं दस्तावेज में नहीं मिल सकता है ऑपरेटर के रूप में, दो संचायक सेट योग करने के लिए क्षमता है + =

उदाहरण:

using namespace boost::accumulators; 
typedef accumulator_set<double, features<tag::variance> > AccumSet; 

class Foo { 
    AccumSet acc; 
public: 
    Foo& operator+=(const Foo& that) { 
     this->acc += that.acc; // error! no such operator 
     return *this; 
    } 
    double GetVariance() { return variance(acc); } 
}; 

मैं इस उपलब्ध एपीआई का उपयोग कर प्राप्त कर सकते हैं? मुझे नहीं पता कि यह लाइब्रेरी में संभवतः सभी प्रकार के संचयकों के लिए लागू किया जा सकता है (शायद पूंछ के लिए नहीं), लेकिन यह निश्चित रूप से महत्वपूर्ण चीजों के लिए हो सकता है, जैसे गिनती, योग, औसत, पल, कॉन्वर्स, इत्यादि

+0

आप इसे वापस लौटाना भी भूल रहे हैं; हालांकि, यह असंबंधित है। – Matt

+0

@ मैट, बिंदु के बगल में, लेकिन अभी भी फिक्सिंग लायक है ... – killogre

उत्तर

3

दुर्भाग्य से, यह सुविधा Boost.Accumulators द्वारा प्रदान नहीं की जाती है, शायद इसलिए कि संयोजन केवल कुछ आंकड़ों के लिए काम करेगा।

a ticket on the Boost tracker ऐसे combine फ़ंक्शन के लिए पूछ रहा है।

+0

धन्यवाद। मैं बूस्ट मेलिंग सूची में चारों ओर देखने और पोस्ट करने के बाद एक ही निष्कर्ष पर आया था। मुझे उस टिकट से अवगत नहीं था, हालांकि यह 4 साल पहले खोला गया था! मेरा सवाल यह है कि क्या आंकड़ों के लिए कुछ कामकाज है जिसे समर्थित किया जा सकता है। – killogre

1

दो accumulator_set <> ऑब्जेक्ट्स जोड़ने के लिए कोई उचित और उपलब्ध ऑपरेटर + = नहीं है।

संबंधित मुद्दे