为什么报错,编译器爆炸了
查看原帖
为什么报错,编译器爆炸了
913288
3_14楼主2025/1/4 11:31
#include<bits/stdc++.h>
#define Freopen(x) freopen(x".in","r",stdin);freopen(x".out","w",stdout);
#define lcm(x,y) x/__gcd(x,y)*y;
#define lb(x) (x&-x)
#define str to_string
#define Made return
#define by 0
#define _3_14 ;
using namespace std;
using ll=long long;
const double EPS=1e-6,PAI=acos(-1.0);
const int MAX=1e5+1;
struct Nodex{
	int x,y;
	bool operator()(const Nodex&a,const Nodex&b)const{
		if(a.x==b.x)return a.y<b.y;
		return a.x<b.x;
	}
}a[MAX];
struct Nodey{
	int x,y;
	bool operator()(const Nodey&a,const Nodey&b)const{
		if(a.x==b.x)return a.y>b.y;
		return a.x>b.x;
	}
}b[MAX];
priority_queue<Nodex>W;
priority_queue<Nodey>B;
int n,m;
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int x,y;
		char color;
		cin>>x>>y>>color;
		if(color=='B')B.push({x,y});
		if(color=='W')W.push({x,y});
	}
	Nodex w=W.top();
	Nodey b=B.top();
	if(w.x<=b.x&&w.y<=b.y)cout<<"No\n";
	else cout<<"Yes\n";
	Made by _3_14
}

洛谷报错信息,没有编译器报错信息因为文件报错了

In file included from /usr/include/c&#43;&#43;/12/string:48,
                 from /usr/include/c&#43;&#43;/12/bits/locale_classes.h:40,
                 from /usr/include/c&#43;&#43;/12/bits/ios_base.h:41,
                 from /usr/include/c&#43;&#43;/12/ios:42,
                 from /usr/include/c&#43;&#43;/12/istream:38,
                 from /usr/include/c&#43;&#43;/12/sstream:38,
                 from /usr/include/c&#43;&#43;/12/complex:45,
                 from /usr/include/c&#43;&#43;/12/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c&#43;&#43;/12/bits/stdc&#43;&#43;.h:54,
                 from Main.cpp:2:
/usr/include/c&#43;&#43;/12/bits/stl_function.h: In instantiation of ‘constexpr bool std::less&lt;_Tp&gt;::operator()(const _Tp&amp;, const _Tp&amp;) const [with _Tp = Nodey]’:
/usr/include/c&#43;&#43;/12/bits/predefined_ops.h:196:23:   required from ‘bool __gnu_cxx::__ops::_Iter_comp_val&lt;_Compare&gt;::operator()(_Iterator, _Value&amp;) [with _Iterator = __gnu_cxx::__normal_iterator&lt;Nodey*, std::vector&lt;Nodey, std::allocator&lt;Nodey&gt; &gt; &gt;; _Value = Nodey; _Compare = std::less&lt;Nodey&gt;]’
/usr/include/c&#43;&#43;/12/bits/stl_heap.h:140:48:   required from ‘void std::__push_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare&amp;) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;Nodey*, vector&lt;Nodey, allocator&lt;Nodey&gt; &gt; &gt;; _Distance = long int; _Tp = Nodey; _Compare = __gnu_cxx::__ops::_Iter_comp_val&lt;less&lt;Nodey&gt; &gt;]’
/usr/include/c&#43;&#43;/12/bits/stl_heap.h:216:23:   required from ‘void std::push_heap(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator&lt;Nodey*, vector&lt;Nodey, allocator&lt;Nodey&gt; &gt; &gt;; _Compare = less&lt;Nodey&gt;]’
/usr/include/c&#43;&#43;/12/bits/stl_queue.h:749:16:   required from ‘void std::priority_queue&lt;_Tp, _Sequence, _Compare&gt;::push(value_type&amp;&amp;) [with _Tp = Nodey; _Sequence = std::vector&lt;Nodey, std::allocator&lt;Nodey&gt; &gt;; _Compare = std::less&lt;Nodey&gt;; value_type = Nodey]’
Main.cpp:37:23:   required from here
/usr/include/c&#43;&#43;/12/bits/stl_function.h:408:20: error: no match for ‘operator&lt;’ (operand types are ‘const Nodey’ and ‘const Nodey’)
  408 |       { return __x &lt; __y; }
      |                ~~~~^~~~~
In file included from /usr/include/c&#43;&#43;/12/bits/stl_algobase.h:64,
                 from /usr/include/c&#43;&#43;/12/bits/specfun.h:45,
                 from /usr/include/c&#43;&#43;/12/cmath:1935,
                 from /usr/include/x86_64-linux-gnu/c&#43;&#43;/12/bits/stdc&#43;&#43;.h:41:
/usr/include/c&#43;&#43;/12/bits/stl_pair.h:663:5: note: candidate: ‘template&lt;class _T1, class _T2&gt; constexpr bool std::operator&lt;(const pair&lt;_T1, _T2&gt;&amp;, const pair&lt;_T1, _T2&gt;&amp;)’
  663 |     operator&lt;(const pair&lt;_T1, _T2&gt;&amp; __x, const pair&lt;_T1, _T2&gt;&amp; __y)
      |     ^~~~~~~~
/usr/include/c&#43;&#43;/12/bits/stl_pair.h:663:5: note:   template argument deduction/substitution failed:
/usr/include/c&#43;&#43;/12/bits/stl_function.h:408:20: note:   ‘const Nodey’ is not derived from ‘const std::pair&lt;_T1, _T2&gt;’
  408 |       { return __x &lt; __y; }
      |                ~~~~^~~~~
In file included from /usr/include/c&#43;&#43;/12/bits/stl_algobase.h:67:
/usr/include/c&#43;&#43;/12/bits/stl_iterator.h:451:5: note: candidate: ‘template&lt;class _Iterator&gt; constexpr bool std::operator&lt;(const reverse_iterator&lt;_Iterator&gt;&amp;, const reverse_iterator&lt;_Iterator&gt;&amp;)’
  451 |     operator&lt;(const reverse_iterator&lt;_Iterator&gt;&amp; __x,
      |     ^~~~~~~~
/usr/include/c&#43;&#43;/12/bits/stl_iterator.h:451:5: note:   template argument deduction/substitution failed:
/usr/include/c&#43;&#43;/12/bits/stl_function.h:408:20: note:   ‘const Nodey’ is not derived from ‘const std::reverse_iterator&lt;_Iterator&gt;’
  408 |       { return __x &lt; __y; }
      |                ~~~~^~~~~
/usr/include/c&#43;&#43;/12/bits/stl_iterator.h:496:5: note: candidate: ‘template&lt;class _IteratorL, class _IteratorR&gt; constexpr bool std::operator&lt;(const reverse_iterator&lt;_Iterator&gt;&amp;, const reverse_iterator&lt;_IteratorR&gt;&amp;)’
  496 |     operator&lt;(const reverse_iterator&lt;_IteratorL&gt;&amp; __x,
      |     ^~~~~~~~
/usr/include/c&#43;&#43;/12/bits/stl_iterator.h:496:5: note:   template argument deduction/substitution failed:
/usr/include/c&#43;&#43;/12/bits/stl_function.h:408:20: note:   ‘const Nodey’ is not derived from ‘const std::reverse_iterator&lt;_Iterator&gt;’
  408 |       { return __x &lt; __y; }
      |                ~~~~^~~~~
/usr/include/c&#43;&#43;/12/bits/stl_iterator.h:1683:5: note: candidate: ‘template&lt;class _IteratorL, class _IteratorR&gt; constexpr bool std::operator&lt;(const move_iterator&lt;_IteratorL&gt;&amp;, const move_iterator&lt;_IteratorR&gt;&amp;)’
 1683 |     operator&lt;(const move_iterator&lt;_IteratorL&gt;&amp; __x,
      |     ^~~~~~~~
/usr/include/c&#43;&#43;/12/bits/stl_iterator.h:1683:5: note:   template argument deduction/substitution failed:
/usr/include/c&#43;&#43;/12/bits/stl_function.h:408:20: note:   ‘const Nodey’ is not derived from ‘const std::move_iterator&lt;_IteratorL&gt;’
  408 |       { return __x &lt; __y; }
      |                ~~~~^~~~~
/usr/include/c&#43;&#43;/12/bits/stl_iterator.h:1748:5: note: candidate: ‘template&lt;class _Iterator&gt; constexpr bool std::operator&lt;(const move_iterator&lt;_IteratorL&gt;&amp;, const move_iterator&lt;_IteratorL&gt;&amp;)’
 1748 |     operator&lt;(const move_iterator&lt;_Iterator&gt;&amp; __x,
      |     ^~~~~~~~
/usr/include/c&#43;&#43;/12/bits/stl_iterator.h:1748:5: note:   template argument deduction/substitution failed:
/usr/include/c&#43;&#43;/12/bits/stl_function.h:408:20: note:   ‘const Nodey’ is not derived from ‘const std::move_iterator&lt;_IteratorL&gt;’
  408 |       { return __x &lt; __y; }
      |                ~~~~^~~~~
/usr/include/c&#43;&#43;/12/bits/stl_function.h: In instantiation of ‘constexpr bool std::less&lt;_Tp&gt;::operator()(const _Tp&amp;, const _Tp&amp;) const [with _Tp = Nodex]’:
/usr/include/c&#43;&#43;/12/bits/predefined_ops.h:196:23:   required from ‘bool __gnu_cxx::__ops::_Iter_comp_val&lt;_Compare&gt;::operator()(_Iterator, _Value&amp;) [with _Iterator = __gnu_cxx::__normal_iterator&lt;Nodex*, std::vector&lt;Nodex, std::allocator&lt;Nodex&gt; &gt; &gt;; _Value = Nodex; _Compare = std::less&lt;Nodex&gt;]’
/usr/include/c&#43;&#43;/12/bits/stl_heap.h:140:48:   required from ‘void std::__push_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare&amp;) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator&lt;Nodex*, vector&lt;Nodex, allocator&lt;Nodex&gt; &gt; &gt;; _Distance = long int; _Tp = Nodex; _Compare = __gnu_cxx::__ops::_Iter_comp_val&lt;less&lt;Nodex&gt; &gt;]’
/usr/include/c&#43;&#43;/12/bits/stl_heap.h:216:23:   required from ‘void std::push_heap(_RAIter, _RAIter, _Compare) [with _RAIter = __gnu_cxx::__normal_iterator&lt;Nodex*, vector&lt;Nodex, allocator&lt;Nodex&gt; &gt; &gt;; _Compare = less&lt;Nodex&gt;]’
/usr/include/c&#43;&#43;/12/bits/stl_queue.h:749:16:   required from ‘void std::priority_queue&lt;_Tp, _Sequence, _Compare&gt;::push(value_type&amp;&amp;) [with _Tp = Nodex; _Sequence = std::vector&lt;Nodex, std::allocator&lt;Nodex&gt; &gt;; _Compare = std::less&lt;Nodex&gt;; value_type = Nodex]’
Main.cpp:38:23:   required from here
/usr/include/c&#43;&#43;/12/bits/stl_function.h:408:20: error: no match for ‘operator&lt;’ (operand types are ‘const Nodex’ and ‘const Nodex’)
/usr/include/c&#43;&#43;/12/bits/stl_pair.h:663:5: note: candidate: ‘template&lt;class _T1, class _T2&gt; constexpr bool std::operator&lt;(const pair&lt;_T1, _T2&gt;&amp;, const pair&lt;_T1, _T2&gt;&amp;)’
  663 |     operator&lt;(const pair&lt;_T1, _T2&gt;&amp; __x, const pair&lt;_T1, _T2&gt;&amp; __y)
      |     ^~~~~~~~
/usr/include/c&#43;&#43;/12/bits/stl_pair.h:663:5: note:   template argument deduction/substitution failed:
/usr/include/c&#43;&#43;/12/bits/stl_function.h:408:20: note:   ‘const Nodex’ is not derived from ‘const std::pair&lt;_T1, _T2&gt;’
  408 |       { return __x &lt; __y; }
      |                ~~~~^~~~~
/usr/include/c&#43;&#43;/12/bits/stl_iterator.h:451:5: note: candidate: ‘template&lt;class _Iterator&gt; constexpr bool std::operator&lt;(const reverse_iterator&lt;_Iterator&gt;&amp;, const reverse_iterator&lt;_Iterator&gt;&amp;)’
  451 |     operator&lt;(const reverse_iterator&lt;_Iterator&gt;&amp; __x,
      |     ^~~~~~~~
/usr/include/c&#43;&#43;/12/bits/stl_iterator.h:451:5: note:   template argument deduction/substitution failed:
/usr/include/c&#43;&#43;/12/bits/stl_function.h:408:20: note:   ‘const Nodex’ is not derived from ‘const std::reverse_iterator&lt;_Iterator&gt;’
  408 |       { return __x &lt; __y; }
      |                ~~~~^~~~~
/usr/include/c&#43;&#43;/12/bits/stl_iterator.h:496:5: note: candidate: ‘template&lt;class _IteratorL, class _IteratorR&gt; constexpr bool std::operator&lt;(const reverse_iterator&lt;_Iterator&gt;&amp;, const reverse_iterator&lt;_IteratorR&gt;&amp;)’
  496 |     operator&lt;(const reverse_iterator&lt;_IteratorL&gt;&amp; __x,
      |     ^~~~~~~~
/usr/include/c&#43;&#43;/12/bits/stl_iterator.h:496:5: note:   template argument deduction/substitution failed:
/usr/include/c&#43;&#43;/12/bits/stl_function.h:408:20: note:   ‘const Nodex’ is not derived from ‘const std::reverse_iterator&lt;_Iterator&gt;’
  408 |       { return __x &lt; __y; }
      |                ~~~~^~~~~
/usr/include/c&#43;&#43;/12/bits/stl_iterator.h:1683:5: note: candidate: ‘template&lt;class _IteratorL, class _IteratorR&gt; constexpr bool std::operator&lt;(const move_iterator&lt;_IteratorL&gt;&amp;, const move_iterator&lt;_IteratorR&gt;&amp;)’
 1683 |     operator&lt;(const move_iterator&lt;_IteratorL&gt;&amp; __x,
      |     ^~~~~~~~
/usr/include/c&#43;&#43;/12/bits/stl_iterator.h:1683:5: note:   template argument deduction/substitution failed:
/usr/include/c&#43;&#43;/12/bits/stl_function.h:408:20: note:   ‘const Nodex’ is not derived from ‘const std::move_iterator&lt;_IteratorL&gt;’
  408 |       { return __x &lt; __y; }
      |                ~~~~^~~~~
/usr/include/c&#43;&#43;/12/bits/stl_iterator.h:1748:5: note: candidate: ‘template&lt;class _Iterator&gt; constexpr bool std::operator&lt;(const move_iterator&lt;_IteratorL&gt;&amp;, const move_iterator&lt;_IteratorL&gt;&amp;)’
 1748 |     operator&lt;(const move_iterator&lt;_Iterator&gt;&amp; __x,
      |     ^~~~~~~~
/usr/include/c&#43;&#43;/12/bits/stl_iterator.h:1748:5: note:   template argument deduction/substitution failed:
/usr/include/c&#43;&#43;/12/bits/stl_function.h:408:20: note:   ‘const Nodex’ is not derived from ‘const std::move_iterator&lt;_IteratorL&gt;’
  408 |       { return __x &lt; __y; }
      |                ~~~~^~~~~
2025/1/4 11:31
加载中...