fork download
  1. #include <iostream>
  2. #include <queue>
  3. #include <vector>
  4. using namespace std;
  5.  
  6. class comparator{
  7. double* query;
  8. int d;
  9. public:
  10. int operator()( double* point1, double* point2) {
  11. double dist1 = 0,dist2 = 0;
  12. for(int i=0;i<d;i++){
  13. dist1 += (point1[i] - query[i]) * (point1[i] - query[i]);
  14. dist2 += (point2[i] - query[i]) * (point2[i] - query[i]);
  15. }
  16. return dist1 < dist2;
  17. }
  18.  
  19. comparator(double * query,int d)
  20. {
  21. this->query = query;
  22. this->d = d;
  23. }
  24. };
  25.  
  26. int main() {
  27. double query[] = {1.0, 2, 3, 4, 5, 6};
  28.  
  29. comparator pq_cmp(query, 5);
  30. priority_queue <double* , vector<double*>, decltype(pq_cmp) > min_heap(pq_cmp);
  31. return 0;
  32. }
Success #stdin #stdout 0s 4476KB
stdin
Standard input is empty
stdout
Standard output is empty