|
Boost Users : |
Subject: Re: [Boost-users] [accumulators] Help required for using UDT as Sample
From: dhruva (dhruva_at_[hidden])
Date: 2009-02-25 00:41:37
Hello,
Thank you for offering to have a look, here is the code.
regards,
-dhruva
// Starts here
#include <stdio.h>
#include <iostream>
#include <vector>
#include <boost/accumulators/accumulators.hpp>
#include <boost/accumulators/statistics/stats.hpp>
#include <boost/accumulators/statistics/min.hpp>
using namespace std;
namespace bacc = boost::accumulators;
using namespace bacc;
typedef struct {
size_t _time;
double _value;
} time_val_t;
/* Wrapper class as I cannot modify time_val_t */
class acc_sample {
public:
time_val_t _data;
acc_sample(time_t t = 0, double v = 0.0) {
_data._time = t;
_data._value = v;
}
acc_sample(const time_val_t &i) {
_data = i;
}
acc_sample(const acc_sample &i) {
_data = i._data;
}
bool operator < (const acc_sample &rhs) {
return _data._value < rhs._data._value;
}
bool operator > (const acc_sample &rhs) {
return _data._value > rhs._data._value;
}
bool operator == (const acc_sample &rhs) {
return _data._value == rhs._data._value;
}
bool operator != (const acc_sample &rhs) {
return _data._value != rhs._data._value;
}
};
int
main(int argc, char *argv[]) {
#if 0
acc_sample s1(10, 100);
acc_sample s2(11, 101);
acc_sample s3(12, 102);
if (s1 == s1)
cout << "==" << endl;
if (s1 < s2)
cout << "<" << endl;
if (s2 > s1)
cout << ">" << endl;
#endif
accumulator_set< acc_sample, features< tag::min > > acc;
return 0;
}
// Ends here
----- Original Message ----
> From: Eric Niebler <eric_at_[hidden]>
> To: boost-users_at_[hidden]
> Sent: Wednesday, 25 February, 2009 10:37:42 AM
> Subject: Re: [Boost-users] [accumulators] Help required for using UDT as Sample
>
> dhruva wrote:
> > I have my own data type, time stamp and value. I would like to get the min
> Sample with corresponding time stamp.
> >
> > class time_val {
> > public:
> > time_t _time;
> > double _value;
> >
> > /* I have overloaded operators: <, >, ==, != */
> > /* Have provided copy constructor */
> > };
> >
> > When I try:
> > accumulator_set< time_val, features > acc;
> >
> > I get a whole lot of compilation errors. Is there any way I can make a UDT as
> a sample?
>
> That should just work. Can you provide a complete example?
>
> -- Eric Niebler
> BoostPro Computing
> http://www.boostpro.com
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
Add more friends to your messenger and enjoy! Go to http://messenger.yahoo.com/invite/
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net