JSP工具函数-[http://blog.youkuaiyun.com/kexin732]

该博客展示了mxzc.web.strctrl包下的StringCtrl类,包含文本替换、反文本替换、E-Mail和QQ格式检查、字符串编码转换、日期处理等多种功能方法的实现代码,可用于字符串的各类处理操作。
package mxzc.web.strctrl;
public class StringCtrl
{/********************************************
public synchronized String HTMLcode(String TXTcode)   功能:文本替换
public synchronized String Unhtmlcode(String str)   功能:(不完全)反文本替换
public synchronized String Unhtmlcodea(String str)   功能:反文本替换
public synchronized boolean emailcheck (String email)   功能:检查一个字符串是否符合E-Mail
public synchronized boolean isemailstr(String email)   功能:检查一个字符串是否符合E-Mail
public synchronized boolean isqqstr(String qq)    功能:检查一个字符串是否符合QQ
public synchronized boolean isnumstr(String num)   功能:检查一个字符串是否为一数字串
public synchronized String userstrlow(String user)   功能:替换用户名中不合法的部分
public synchronized boolean userstrchk(String user)   功能:检查字符串是否符合用户名法则
public synchronized boolean istelstr(String tel)   功能:检查字符串是否为TEL
public synchronized boolean urlcheck(String url)   功能:检查字符串是否为URL
public synchronized String isotogbk(String iso)    功能:ISO9006-1码转换为GBK
public synchronized String gbktoiso(String gbk)    功能:GBK码转换为ISO9006-1
public synchronized String dostrcut(String oldstr,int length)  功能:按汉字长换行(英文按半个字长)
public synchronized String inttodateshow(int datenum)   功能:将1900年至时间的秒数换为日期字符串
public synchronized String nowdateshow()    功能:显示当前日期
public synchronized java.util.Date inttodate(int datenum)  功能:将秒数转换为日期
public synchronized int datetoint()     功能:将时间换为从1900年至今的秒数
public synchronized int datetoint(java.util.Date d)   功能:将时间换为从1900年至时间的秒数
public synchronized String overlengthcut(String str,int length)  功能:截取前几个字符,单位为汉字字长
public synchronized String replace(String str,String suba,String subb) 功能:字符串替换
*********************************************/
private static final String isostr="ISO8859-1";
private static final String gbkstr="GBK";
public StringCtrl()
{
}
public synchronized boolean emailcheck (String email)
{
if(email==null)return false;
if(email.length()<6)return false;
if(email.indexOf("@")<2)return false;
if(email.indexOf(".")<4)return false;
if(email.endsWith(".")||email.endsWith("@"))return false;
if(email.lastIndexOf("@")>email.lastIndexOf(".")-1)return false;
if(email.lastIndexOf("@")!=email.indexOf("@"))return false;
String[] lowstr={"/'","/"","/n","&","/t","/r","<",">","/","//","#"};
for(int i=0;i<lowstr.length;i++)if(email.indexOf("lowstr")>0)return false;
return true;
}
public synchronized boolean isemailstr(String email)
{
if(email==null)return false;
if(email.indexOf("@")==-1||email.indexOf(".")==-1||email.length()<6)return false;
return true;
}
public synchronized boolean isqqstr(String qq)
{
if(qq==null)return false;
if(qq.length()>12)return false;
if(qq.length()<5)return false;
for(int i=0;i<qq.length();i++)
if(!(((int)qq.charAt(i))<=57&&((int)qq.charAt(i))>=48))return false;
return true;
}
public synchronized boolean isnumstr(String num)
{
if(num==null)return false;
if(num.length()<1)return false;
for(int i=0;i<num.length();i++)
if(!(((int)num.charAt(i))<=57&&((int)num.charAt(i))>=48))return false;
return true;
}
public synchronized String userstrlow(String user)
{
String newuserstr=user.trim();
char[] lowstr={'/'','/"','/n','&','/t','/r','<','>','/','//','#'};
for(int i=0;i<lowstr.length;i++)
newuserstr=newuserstr.replace(lowstr[i],'+');
return newuserstr;
}
public synchronized boolean userstrchk(String user)
{
String newuserstr=user.trim();
char[] lowstr={'/'','/"','/n','&','/t','/r','<','>','/','//','#','~','`','!','@','$','%','^','*','(',')','-','_','+','=','|','?',',',';','.'};
for(int i=0;i<lowstr.length;i++)
newuserstr=newuserstr.replace(lowstr[i],'+');
return (user.equals(newuserstr))?true:false;
}
public synchronized boolean istelstr(String tel)
{
if(tel==null)return false;
if(tel.length()<1)return false;
if(tel.length()>32)return false;
for(int i=0;i<tel.length();i++)
if(!(((int)tel.charAt(i))<=57&&((int)tel.charAt(i))>=48))if(tel.charAt(i)!='-')return false;
return true;
}
public synchronized boolean urlcheck(String url)
{
if(url==null)return false;
if(url.length()<10)return false;
String urls=url.toLowerCase();
if(!urls.startsWith("http://"))return false;
if(url.indexOf("<")>0||url.indexOf(">")>0)return false;
return true;
}
public synchronized String isotogbk(String iso)throws Exception
{
 if(iso!=null)return (new String(iso.getBytes(isostr),gbkstr));
 if(iso.length()<1)return "";
 return null;
}
public synchronized String gbktoiso(String gbk)throws Exception
{
 if(gbk!=null)return (new String(gbk.getBytes(gbkstr),isostr));
 if(gbk.length()<1)return "";
 return null;
}
public synchronized String HTMLcode(String TXTcode)
{
 String newstr="";
 if(TXTcode==null)return "";
 newstr=TXTcode;
 newstr=replace(newstr,"&","&amp;");
 newstr=replace(newstr,"/"","&quot;");
 newstr=replace(newstr," ","&nbsp;");
 newstr=replace(newstr,"<","&lt;");
 newstr=replace(newstr,">","&gt;");
 newstr=replace(newstr,"/'","&#00039;");
 return newstr;
}
public synchronized String Unhtmlcode(String str)
{
 String newstr="";
 if(str==null)return "";
 if(str.length()<1)return "";
 newstr=str;
 newstr=replace(newstr,"&amp;","&");
 //newstr=replace(newstr,"&quot;","/"");
 newstr=replace(newstr,"&nbsp;"," ");
 newstr=replace(newstr,"&quot;","/"");
 //newstr=replace(newstr,"&lt;","<");
 //newstr=replace(newstr,"&gt;",">");
 newstr=replace(newstr,"&#00039;","/'");
 return newstr;
}
public synchronized String Unhtmlcodea(String str)
{
 String newstr="";
 if(str==null)return "";
 if(str.length()<1)return "";
 newstr=str;
 newstr=replace(newstr,"&amp;","&");
 newstr=replace(newstr,"&quot;","/"");
 newstr=replace(newstr,"&nbsp;"," ");
 newstr=replace(newstr,"&lt;","<");
 newstr=replace(newstr,"&gt;",">");
 newstr=replace(newstr,"&#00039;","/'");
 return newstr;
}
public synchronized String dostrcut(String oldstr,int length)
{
 int i=0;
 int j=0;
 int k=0;
 String newstr="";
 if(oldstr==null)return "";
 if(length<=0)return "";
 for(i=0;i<oldstr.length();i++)
 {
  if(oldstr.charAt(i)=='/n')j=0;
  else if(((int)(oldstr.charAt(i)))>255)j+=2;
  else j++;
  if((j/2)>=length)
  {
   newstr=newstr.concat(oldstr.substring(k,i)+"/n");
   k=i;
   j=0;
  }
 }
 newstr=newstr.concat(oldstr.substring(k)+"/n");
 return newstr;
}
public synchronized String inttodateshow(int datenum)
{
 int year=0;
 int month=0;
 int day=0;
 int hour=0;
 int minute=0;
 int second=0;
 String datestr="";
 java.util.Date d;
 d=new java.util.Date((long)(datenum)*1000);
 java.util.Calendar ds=java.util.Calendar.getInstance();
 ds.setTime(d);
 year=ds.get(java.util.Calendar.YEAR);
 month=ds.get(java.util.Calendar.MONTH);
 day=ds.get(java.util.Calendar.DATE);
 hour=ds.get(java.util.Calendar.HOUR_OF_DAY);
 minute=ds.get(java.util.Calendar.MINUTE);
 second=ds.get(java.util.Calendar.SECOND);
 datestr=Integer.toString(year)+"/"+Integer.toString(1+month)+"/"+Integer.toString(day);
 return datestr;
}
public synchronized String nowdateshow()
{
 int year=0;
 int month=0;
 int day=0;
 int hour=0;
 int minute=0;
 int second=0;
 String datestr="";
 java.util.Calendar ds=java.util.Calendar.getInstance();
 year=ds.get(java.util.Calendar.YEAR);
 month=ds.get(java.util.Calendar.MONTH);
 day=ds.get(java.util.Calendar.DATE);
 hour=ds.get(java.util.Calendar.HOUR_OF_DAY);
 minute=ds.get(java.util.Calendar.MINUTE);
 second=ds.get(java.util.Calendar.SECOND);
 datestr=Integer.toString(year)+"/"+Integer.toString(1+month)+"/"+Integer.toString(day);
 return datestr;
}
public synchronized java.util.Date inttodate(int datenum)
{
 int year=0;
 int month=0;
 int day=0;
 String datestr="";
 java.util.Date d;
 d=new java.util.Date((long)(datenum)*1000);
 return d;
}
public synchronized int datetoint()
{
 java.util.Date d=null;
 long ds=0;
 d=new java.util.Date();
 ds=d.getTime();
 return (int)(ds/1000);
}
public synchronized int datetoint(java.util.Date d)
{
 long ds=0;
 ds=d.getTime();
 return (int)(ds/1000);
}
public synchronized String overlengthcut(String str,int length)
{
 int i=0;
 int j=0;
 if(str==null)return "";
 if(length<0)return "";
 if(str.length()<=length)return str;
 for(i=0;i<str.length();i++)
 {
  if(((int)(str.charAt(i)))>255)j+=2;
  else j++;
  if((j/2)>=length)
  {
   return str.substring(0,i);
  }
 }
 return str;
}
public synchronized String replace(String str,String suba,String subb)
{
String newstr="";
int start=0;
int offset=0;
int subalength=0;
int strlength=0;
if(str==null||suba==null||subb==null)return str;
if(suba.equals(subb))return str;
if(str.length()<suba.length()||str.length()<subb.length())return str;
if(str.length()>0&&suba.length()>0&&subb.length()>0)
{
 subalength=suba.length();
 strlength=str.length();
 while(true)
 {
  if(str.indexOf(suba)<0)break;
  if(offset>strlength)break;
  start=str.indexOf(suba,offset);
  if(start<offset)break;
  newstr=newstr.concat(str.substring(offset,start));
  newstr=newstr.concat(subb);
  offset=start+subalength;
 }
 newstr=newstr.concat(str.substring(offset));
 return newstr;
}
else
{
 return str;
}
}
}

作者Blog:http://blog.youkuaiyun.com/kexin732/
g++.exe D:\clion\kexin\countMid\C++_multi_files_20251012165246089\main.cpp -o main In file included from D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/algorithm:61, from D:\clion\kexin\countMid\C++_multi_files_20251012165246089\solution.cpp:7, from D:\clion\kexin\countMid\C++_multi_files_20251012165246089\main.cpp:12: D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h: In instantiation of 'void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]': D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:1859:25: required from 'void std::__final_insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:1950:31: required from 'void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:4861:18: required from 'void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator<const int*, vector<int> >]' D:\clion\kexin\countMid\C++_multi_files_20251012165246089\solution.cpp:18:13: required from here D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:1824:24: error: assignment of read-only location '__first.__gnu_cxx::__normal_iterator<const int*, std::vector<int> >::operator*()' 1824 | *__first = _GLIBCXX_MOVE(__val); | ^ In file included from D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:61: D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_heap.h: In instantiation of 'void std::__pop_heap(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare&) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]': D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:1638:19: required from 'void std::__heap_select(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:1910:25: required from 'void std::__partial_sort(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:1926:27: required from 'void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Size = long long int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:1947:25: required from 'void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:4861:18: required from 'void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator<const int*, vector<int> >]' D:\clion\kexin\countMid\C++_multi_files_20251012165246089\solution.cpp:18:13: required from here D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_heap.h:263:17: error: assignment of read-only location '__result.__gnu_cxx::__normal_iterator<const int*, std::vector<int> >::operator*()' 263 | *__result = _GLIBCXX_MOVE(*__first); | ^ In file included from D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/string:51, from D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/locale_classes.h:40, from D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/ios_base.h:41, from D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/ios:44, from D:\clion\kexin\countMid\C++_multi_files_20251012165246089\main.cpp:7: D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algobase.h: In instantiation of 'void std::iter_swap(_ForwardIterator1, _ForwardIterator2) [with _ForwardIterator1 = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _ForwardIterator2 = __gnu_cxx::__normal_iterator<const int*, vector<int> >]': D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:91:20: required from 'void std::__move_median_to_first(_Iterator, _Iterator, _Iterator, _Iterator, _Compare) [with _Iterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:1897:34: required from '_RandomAccessIterator std::__unguarded_partition_pivot(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:1931:38: required from 'void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Size = long long int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:1947:25: required from 'void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:4861:18: required from 'void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator<const int*, vector<int> >]' D:\clion\kexin\countMid\C++_multi_files_20251012165246089\solution.cpp:18:13: required from here D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algobase.h:185:11: error: no matching function for call to 'swap(const int&, const int&)' 185 | swap(*__a, *__b); | ~~~~^~~~~~~~~~~~ In file included from D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/exception:164, from D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/ios:41: D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/exception_ptr.h:230:5: note: candidate: 'void std::__exception_ptr::swap(exception_ptr&, exception_ptr&)' 230 | swap(exception_ptr& __lhs, exception_ptr& __rhs) | ^~~~ D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/exception_ptr.h:230:25: note: no known conversion for argument 1 from 'const int' to 'std::__exception_ptr::exception_ptr&' 230 | swap(exception_ptr& __lhs, exception_ptr& __rhs) | ~~~~~~~~~~~~~~~^~~~~ In file included from D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/exception_ptr.h:41: D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/move.h:196:5: note: candidate: 'template<class _Tp> std::_Require<std::__not_<std::__is_tuple_like<_Tp> >, std::is_move_constructible<_Tp>, std::is_move_assignable<_Tp> > std::swap(_Tp&, _Tp&)' 196 | swap(_Tp& __a, _Tp& __b) | ^~~~ D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/move.h:196:5: note: template argument deduction/substitution failed: In file included from D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/move.h:57: D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/type_traits: In substitution of 'template<bool _Cond, class _Tp> using std::__enable_if_t = typename std::enable_if::type [with bool _Cond = false; _Tp = void]': D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/type_traits:2224:11: required by substitution of 'template<class ... _Cond> using std::_Require = std::__enable_if_t<std::__and_<_Bn>::value> [with _Cond = {std::__not_<std::__is_tuple_like<const int> >, std::is_move_constructible<const int>, std::is_move_assignable<const int>}]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/move.h:196:5: required by substitution of 'template<class _Tp> std::_Require<std::__not_<std::__is_tuple_like<_Tp> >, std::is_move_constructible<_Tp>, std::is_move_assignable<_Tp> > std::swap(_Tp&, _Tp&) [with _Tp = const int]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algobase.h:185:11: required from 'void std::iter_swap(_ForwardIterator1, _ForwardIterator2) [with _ForwardIterator1 = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _ForwardIterator2 = __gnu_cxx::__normal_iterator<const int*, vector<int> >]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:91:20: required from 'void std::__move_median_to_first(_Iterator, _Iterator, _Iterator, _Iterator, _Compare) [with _Iterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:1897:34: required from '_RandomAccessIterator std::__unguarded_partition_pivot(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:1931:38: required from 'void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Size = long long int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:1947:25: required from 'void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:4861:18: required from 'void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator<const int*, vector<int> >]' D:\clion\kexin\countMid\C++_multi_files_20251012165246089\solution.cpp:18:13: required from here D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/type_traits:116:11: error: no type named 'type' in 'struct std::enable_if<false, void>' 116 | using __enable_if_t = typename enable_if<_Cond, _Tp>::type; | ^~~~~~~~~~~~~ D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algobase.h: In instantiation of 'void std::iter_swap(_ForwardIterator1, _ForwardIterator2) [with _ForwardIterator1 = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _ForwardIterator2 = __gnu_cxx::__normal_iterator<const int*, vector<int> >]': D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:91:20: required from 'void std::__move_median_to_first(_Iterator, _Iterator, _Iterator, _Iterator, _Compare) [with _Iterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:1897:34: required from '_RandomAccessIterator std::__unguarded_partition_pivot(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:1931:38: required from 'void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Size = long long int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:1947:25: required from 'void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:4861:18: required from 'void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator<const int*, vector<int> >]' D:\clion\kexin\countMid\C++_multi_files_20251012165246089\solution.cpp:18:13: required from here D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/move.h:220:5: note: candidate: 'template<class _Tp, long long unsigned int _Nm> std::__enable_if_t<std::__is_swappable<_Tp>::value> std::swap(_Tp (&)[_Nm], _Tp (&)[_Nm])' 220 | swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) | ^~~~ D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/move.h:220:5: note: template argument deduction/substitution failed: D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algobase.h:185:11: note: mismatched types '_Tp [_Nm]' and 'const int' 185 | swap(*__a, *__b); | ~~~~^~~~~~~~~~~~ In file included from D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algobase.h:64: D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_pair.h:879:5: note: candidate: 'template<class _T1, class _T2> typename std::enable_if<std::__and_<std::__is_swappable<_T1>, std::__is_swappable<_T2> >::value>::type std::swap(pair<_T1, _T2>&, pair<_T1, _T2>&)' 879 | swap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y) | ^~~~ D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_pair.h:879:5: note: template argument deduction/substitution failed: D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algobase.h:185:11: note: mismatched types 'std::pair<_T1, _T2>' and 'const int' 185 | swap(*__a, *__b); | ~~~~^~~~~~~~~~~~ D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_pair.h:896:5: note: candidate: 'template<class _T1, class _T2> typename std::enable_if<(! std::__and_<std::__is_swappable<_T1>, std::__is_swappable<_T2> >::value)>::type std::swap(pair<_T1, _T2>&, pair<_T1, _T2>&)' (deleted) 896 | swap(pair<_T1, _T2>&, pair<_T1, _T2>&) = delete; | ^~~~ D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_pair.h:896:5: note: template argument deduction/substitution failed: D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algobase.h:185:11: note: mismatched types 'std::pair<_T1, _T2>' and 'const int' 185 | swap(*__a, *__b); | ~~~~^~~~~~~~~~~~ D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_heap.h: In instantiation of 'void std::__adjust_heap(_RandomAccessIterator, _Distance, _Distance, _Tp, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Distance = long long int; _Tp = int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]': D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_heap.h:356:22: required from 'void std::__make_heap(_RandomAccessIterator, _RandomAccessIterator, _Compare&) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:1635:23: required from 'void std::__heap_select(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:1910:25: required from 'void std::__partial_sort(_RandomAccessIterator, _RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:1926:27: required from 'void std::__introsort_loop(_RandomAccessIterator, _RandomAccessIterator, _Size, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Size = long long int; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:1947:25: required from 'void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:4861:18: required from 'void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator<const int*, vector<int> >]' D:\clion\kexin\countMid\C++_multi_files_20251012165246089\solution.cpp:18:13: required from here D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_heap.h:235:36: error: assignment of read-only location '__first.__gnu_cxx::__normal_iterator<const int*, std::vector<int> >::operator+(__holeIndex).__gnu_cxx::__normal_iterator<const int*, std::vector<int> >::operator*()' 235 | *(__first + __holeIndex) = _GLIBCXX_MOVE(*(__first + __secondChild)); | ^ D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_heap.h:241:36: error: assignment of read-only location '__first.__gnu_cxx::__normal_iterator<const int*, std::vector<int> >::operator+(__holeIndex).__gnu_cxx::__normal_iterator<const int*, std::vector<int> >::operator*()' 241 | *(__first + __holeIndex) = _GLIBCXX_MOVE(*(__first | ^ D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algobase.h: In instantiation of 'static _Up* std::__copy_move_backward<_IsMove, true, std::random_access_iterator_tag>::__copy_move_b(_Tp*, _Tp*, _Up*) [with _Tp = const int; _Up = const int; bool _IsMove = true]': D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algobase.h:769:37: required from '_BI2 std::__copy_move_backward_a2(_BI1, _BI1, _BI2) [with bool _IsMove = true; _BI1 = const int*; _BI2 = const int*]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algobase.h:778:51: required from '_BI2 std::__copy_move_backward_a1(_BI1, _BI1, _BI2) [with bool _IsMove = true; _BI1 = const int*; _BI2 = const int*]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algobase.h:809:5: required from '_OI std::__copy_move_backward_a(_II, _II, _OI) [with bool _IsMove = true; _II = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _OI = __gnu_cxx::__normal_iterator<const int*, vector<int> >]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algobase.h:901:47: required from '_BI2 std::move_backward(_BI1, _BI1, _BI2) [with _BI1 = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _BI2 = __gnu_cxx::__normal_iterator<const int*, vector<int> >]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:1823:8: required from 'void std::__insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:1859:25: required from 'void std::__final_insertion_sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:1950:31: required from 'void std::__sort(_RandomAccessIterator, _RandomAccessIterator, _Compare) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<const int*, vector<int> >; _Compare = __gnu_cxx::__ops::_Iter_less_iter]' D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algo.h:4861:18: required from 'void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator<const int*, vector<int> >]' D:\clion\kexin\countMid\C++_multi_files_20251012165246089\solution.cpp:18:13: required from here D:/clion/CLion 2025.1.3/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/stl_algobase.h:748:40: error: invalid conversion from 'const void*' to 'void*' [-fpermissive] 748 | __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num); | ~~~~~~~~~^~~~~~ | | | const void* <built-in>: note: initializing argument 1 of 'void* __builtin_memmove(void*, const void*, long long unsigned int)' 进程已结束,退出代码为 1 为什么构建失败
10-13
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值