Compile Error

foo.cc: In function ‘bool cmp(Node, Node)’:
foo.cc:11:41: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
   11 |         return x.num<y.num||x.num==y.num&&x.xh<y.xh;
      |                             ~~~~~~~~~~~~^~~~~~~~~~~
In file included from /nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_algobase.h:71,
                 from /nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/algorithm:60,
                 from stdc++.h:51:
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/predefined_ops.h: In instantiation of ‘bool __gnu_cxx::__ops::_Iter_less_iter::operator()(_Iterator1, _Iterator2) const [with _Iterator1 = Node*; _Iterator2 = Node*]’:
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_algo.h:1777:14:   required from ‘void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = Node*; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’
 1777 |           if (__comp(__i, __first))
      |               ~~~~~~^~~~~~~~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_algo.h:2748:25:   required from ‘void std::__inplace_stable_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = Node*; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’
 2748 |           std::__insertion_sort(__first, __last, __comp);
      |           ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_algo.h:4956:28:   required from ‘void std::__stable_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = Node*; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’
 4956 |         std::__inplace_stable_sort(__first, __last, __comp);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_algo.h:4994:36:   required from ‘void std::stable_sort(_RAIter, _RAIter) [with _RAIter = Node*]’
 4994 |       _GLIBCXX_STD_A::__stable_sort(__first, __last,
      |                                    ^
foo.cc:57:15:   required from here
   57 |                         stable_sort(a+1,a+1+n);
      |                         ~~~~~~~~~~~^~~~~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/predefined_ops.h:45:23: error: no match for ‘operator<’ (operand types are ‘Node’ and ‘Node’)
   45 |       { return *__it1 < *__it2; }
      |                ~~~~~~~^~~~~~~~
In file included from /nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_algobase.h:67:
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_iterator.h:1241:5: note: candidate: ‘template<class _IteratorL, class _IteratorR, class _Container> bool __gnu_cxx::operator<(const __normal_iterator<_IteratorL, _Container>&, const __normal_iterator<_IteratorR, _Container>&)’
 1241 |     operator<(const __normal_iterator<_IteratorL, _Container>& __lhs,
      |     ^~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_iterator.h:1241:5: note:   template argument deduction/substitution failed:
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/predefined_ops.h:45:23: note:   ‘Node’ is not derived from ‘const __gnu_cxx::__normal_iterator<_IteratorL, _Container>’
   45 |       { return *__it1 < *__it2; }
      |                ~~~~~~~^~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_iterator.h:1249:5: note: candidate: ‘template<class _Iterator, class _Container> bool __gnu_cxx::operator<(const __normal_iterator<_Iterator, _Container>&, const __normal_iterator<_Iterator, _Container>&)’
 1249 |     operator<(const __normal_iterator<_Iterator, _Container>& __lhs,
      |     ^~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_iterator.h:1249:5: note:   template argument deduction/substitution failed:
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/predefined_ops.h:45:23: note:   ‘Node’ is not derived from ‘const __gnu_cxx::__normal_iterator<_Iterator, _Container>’
   45 |       { return *__it1 < *__it2; }
      |                ~~~~~~~^~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/predefined_ops.h: In instantiation of ‘bool __gnu_cxx::__ops::_Val_less_iter::operator()(_Value&, _Iterator) const [with _Value = Node; _Iterator = Node*]’:
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_algo.h:1757:20:   required from ‘void std::__unguarded_linear_insert(_RandomAccessIterator, _Compare) [with _RandomAccessIterator = Node*; _Compare = __gnu_cxx::__ops::_Val_less_iter]’
 1757 |       while (__comp(__val, __next))
      |              ~~~~~~^~~~~~~~~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_algo.h:1785:36:   required from ‘void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = Node*; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’
 1785 |             std::__unguarded_linear_insert(__i,
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
 1786 |                                 __gnu_cxx::__ops::__val_comp_iter(__comp));
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_algo.h:2748:25:   required from ‘void std::__inplace_stable_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = Node*; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’
 2748 |           std::__insertion_sort(__first, __last, __comp);
      |           ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_algo.h:4956:28:   required from ‘void std::__stable_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = Node*; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’
 4956 |         std::__inplace_stable_sort(__first, __last, __comp);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_algo.h:4994:36:   required from ‘void std::stable_sort(_RAIter, _RAIter) [with _RAIter = Node*]’
 4994 |       _GLIBCXX_STD_A::__stable_sort(__first, __last,
      |                                    ^
foo.cc:57:15:   required from here
   57 |                         stable_sort(a+1,a+1+n);
      |                         ~~~~~~~~~~~^~~~~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/predefined_ops.h:98:22: error: no match for ‘operator<’ (operand types are ‘Node’ and ‘Node’)
   98 |       { return __val < *__it; }
      |                ~~~~~~^~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_iterator.h:1241:5: note: candidate: ‘template<class _IteratorL, class _IteratorR, class _Container> bool __gnu_cxx::operator<(const __normal_iterator<_IteratorL, _Container>&, const __normal_iterator<_IteratorR, _Container>&)’
 1241 |     operator<(const __normal_iterator<_IteratorL, _Container>& __lhs,
      |     ^~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_iterator.h:1241:5: note:   template argument deduction/substitution failed:
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/predefined_ops.h:98:22: note:   ‘Node’ is not derived from ‘const __gnu_cxx::__normal_iterator<_IteratorL, _Container>’
   98 |       { return __val < *__it; }
      |                ~~~~~~^~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_iterator.h:1249:5: note: candidate: ‘template<class _Iterator, class _Container> bool __gnu_cxx::operator<(const __normal_iterator<_Iterator, _Container>&, const __normal_iterator<_Iterator, _Container>&)’
 1249 |     operator<(const __normal_iterator<_Iterator, _Container>& __lhs,
      |     ^~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_iterator.h:1249:5: note:   template argument deduction/substitution failed:
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/predefined_ops.h:98:22: note:   ‘Node’ is not derived from ‘const __gnu_cxx::__normal_iterator<_Iterator, _Container>’
   98 |       { return __val < *__it; }
      |                ~~~~~~^~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/predefined_ops.h: In instantiation of ‘bool __gnu_cxx::__ops::_Iter_less_val::operator()(_Iterator, _Value&) const [with _Iterator = Node*; _Value = const Node]’:
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_algobase.h:1504:14:   required from ‘_ForwardIterator std::__lower_bound(_ForwardIterator, _ForwardIterator, const _Tp&, _Compare) [with _ForwardIterator = Node*; _Tp = Node; _Compare = __gnu_cxx::__ops::_Iter_less_val]’
 1504 |           if (__comp(__middle, __val))
      |               ~~~~~~^~~~~~~~~~~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_algo.h:2460:26:   required from ‘void std::__merge_without_buffer(_BidirectionalIterator, _BidirectionalIterator, _BidirectionalIterator, _Distance, _Distance, _Compare) [with _BidirectionalIterator = Node*; _Distance = long int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’
 2460 |             = std::__lower_bound(__middle, __last, *__first_cut,
      |               ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2461 |                                  __gnu_cxx::__ops::__iter_comp_val(__comp));
      |                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_algo.h:2754:34:   required from ‘void std::__inplace_stable_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = Node*; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’
 2754 |       std::__merge_without_buffer(__first, __middle, __last,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
 2755 |                                   __middle - __first,
      |                                   ~~~~~~~~~~~~~~~~~~~
 2756 |                                   __last - __middle,
      |                                   ~~~~~~~~~~~~~~~~~~
 2757 |                                   __comp);
      |                                   ~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_algo.h:4956:28:   required from ‘void std::__stable_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = Node*; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’
 4956 |         std::__inplace_stable_sort(__first, __last, __comp);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_algo.h:4994:36:   required from ‘void std::stable_sort(_RAIter, _RAIter) [with _RAIter = Node*]’
 4994 |       _GLIBCXX_STD_A::__stable_sort(__first, __last,
      |                                    ^
foo.cc:57:15:   required from here
   57 |                         stable_sort(a+1,a+1+n);
      |                         ~~~~~~~~~~~^~~~~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/predefined_ops.h:69:22: error: no match for ‘operator<’ (operand types are ‘Node’ and ‘const Node’)
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_iterator.h:1241:5: note: candidate: ‘template<class _IteratorL, class _IteratorR, class _Container> bool __gnu_cxx::operator<(const __normal_iterator<_IteratorL, _Container>&, const __normal_iterator<_IteratorR, _Container>&)’
 1241 |     operator<(const __normal_iterator<_IteratorL, _Container>& __lhs,
      |     ^~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_iterator.h:1241:5: note:   template argument deduction/substitution failed:
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/predefined_ops.h:69:22: note:   ‘Node’ is not derived from ‘const __gnu_cxx::__normal_iterator<_IteratorL, _Container>’
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_iterator.h:1249:5: note: candidate: ‘template<class _Iterator, class _Container> bool __gnu_cxx::operator<(const __normal_iterator<_Iterator, _Container>&, const __normal_iterator<_Iterator, _Container>&)’
 1249 |     operator<(const __normal_iterator<_Iterator, _Container>& __lhs,
      |     ^~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_iterator.h:1249:5: note:   template argument deduction/substitution failed:
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/predefined_ops.h:69:22: note:   ‘Node’ is not derived from ‘const __gnu_cxx::__normal_iterator<_Iterator, _Container>’
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/predefined_ops.h: In instantiation of ‘bool __gnu_cxx::__ops::_Val_less_iter::operator()(_Value&, _Iterator) const [with _Value = const Node; _Iterator = Node*]’:
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_algo.h:1993:14:   required from ‘_ForwardIterator std::__upper_bound(_ForwardIterator, _ForwardIterator, const _Tp&, _Compare) [with _ForwardIterator = Node*; _Tp = Node; _Compare = __gnu_cxx::__ops::_Val_less_iter]’
 1993 |           if (__comp(__val, __middle))
      |               ~~~~~~^~~~~~~~~~~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_algo.h:2469:26:   required from ‘void std::__merge_without_buffer(_BidirectionalIterator, _BidirectionalIterator, _BidirectionalIterator, _Distance, _Distance, _Compare) [with _BidirectionalIterator = Node*; _Distance = long int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’
 2469 |             = std::__upper_bound(__first, __middle, *__second_cut,
      |               ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2470 |                                  __gnu_cxx::__ops::__val_comp_iter(__comp));
      |                                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_algo.h:2754:34:   required from ‘void std::__inplace_stable_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = Node*; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’
 2754 |       std::__merge_without_buffer(__first, __middle, __last,
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
 2755 |                                   __middle - __first,
      |                                   ~~~~~~~~~~~~~~~~~~~
 2756 |                                   __last - __middle,
      |                                   ~~~~~~~~~~~~~~~~~~
 2757 |                                   __comp);
      |                                   ~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_algo.h:4956:28:   required from ‘void std::__stable_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = Node*; _Compare = __gnu_cxx::__ops::_Iter_less_iter]’
 4956 |         std::__inplace_stable_sort(__first, __last, __comp);
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_algo.h:4994:36:   required from ‘void std::stable_sort(_RAIter, _RAIter) [with _RAIter = Node*]’
 4994 |       _GLIBCXX_STD_A::__stable_sort(__first, __last,
      |                                    ^
foo.cc:57:15:   required from here
   57 |                         stable_sort(a+1,a+1+n);
      |                         ~~~~~~~~~~~^~~~~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/predefined_ops.h:98:22: error: no match for ‘operator<’ (operand types are ‘const Node’ and ‘Node’)
   98 |       { return __val < *__it; }
      |                ~~~~~~^~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_iterator.h:1241:5: note: candidate: ‘template<class _IteratorL, class _IteratorR, class _Container> bool __gnu_cxx::operator<(const __normal_iterator<_IteratorL, _Container>&, const __normal_iterator<_IteratorR, _Container>&)’
 1241 |     operator<(const __normal_iterator<_IteratorL, _Container>& __lhs,
      |     ^~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_iterator.h:1241:5: note:   template argument deduction/substitution failed:
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/predefined_ops.h:98:22: note:   ‘const Node’ is not derived from ‘const __gnu_cxx::__normal_iterator<_IteratorL, _Container>’
   98 |       { return __val < *__it; }
      |                ~~~~~~^~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_iterator.h:1249:5: note: candidate: ‘template<class _Iterator, class _Container> bool __gnu_cxx::operator<(const __normal_iterator<_Iterator, _Container>&, const __normal_iterator<_Iterator, _Container>&)’
 1249 |     operator<(const __normal_iterator<_Iterator, _Container>& __lhs,
      |     ^~~~~~~~
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/stl_iterator.h:1249:5: note:   template argument deduction/substitution failed:
/nix/gcc-14.2.1.20250322/include/c++/14.2.1.20250322/bits/predefined_ops.h:98:22: note:   ‘const Node’ is not derived from ‘const __gnu_cxx::__normal_iterator<_Iterator, _Container>’
   98 |       { return __val < *__it; }
      |                ~~~~~~^~~~~~~

信息

递交者
类型
递交
题目
P2433 插入排序
语言
C++
递交时间
2025-07-19 13:45:49
评测时间
2025-07-19 13:45:49
评测机
分数
0
总耗时
0ms
峰值内存
0 Bytes