Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用sort()函数时出错_C++_C++11 - Fatal编程技术网

C++ 使用sort()函数时出错

C++ 使用sort()函数时出错,c++,c++11,C++,C++11,请看一下我的代码 #包括 使用名称空间std; bool dec(常量字符串和a、常量字符串和b) { 如果(a.长度()!=b.长度()) 返回a.length()>b.length(); 返回a>b; } int main(){ int n,计数=0; 无序的地图散列; cin>>n; 而(n--) { 字符串str; cin>>str; INTA; cin>>a; if(hash.find(str)=hash.end()) 计数++; 而(一) { 字符串ns; cin>>ns; 哈希[s

请看一下我的代码

#包括
使用名称空间std;
bool dec(常量字符串和a、常量字符串和b)
{
如果(a.长度()!=b.长度())
返回a.length()>b.length();
返回a>b;
}
int main(){
int n,计数=0;
无序的地图散列;
cin>>n;
而(n--)
{
字符串str;
cin>>str;
INTA;
cin>>a;
if(hash.find(str)=hash.end())
计数++;
而(一)
{
字符串ns;
cin>>ns;
哈希[str]。推回(ns);
}
}

你的
dec
不是你所想的

当您打开
std
名称空间时,这就是危险所在

解决方案:

  • 使用命名空间std;删除
    (tx@Quentin)
  • 将您的
    dec
    重命名为其他名称或
  • 完全限定它:
    排序(开始(v),结束(v),::dec)

请你的问题提供一个。你没有正确地完成函数部分。要么使用内联函数,要么使用你不想包含的lambdaDid
?@xtofl显然
bits/stdc++.h
是一个包含每个标准头的函数。我很高兴没有意识到。嗯……解决方案:不要向全局文件中吐垃圾通过不使用namespace std;
?鉴于
使用
指令的传染性传播,它似乎不是:pSee
#include <bits/stdc++.h>
using namespace std;
bool dec(const string &a,const string &b)
{
    if(a.length()!=b.length())
    return a.length()>b.length();
    return a>b;
}
int main() {
    int n,count=0;
    unordered_map<string,vector<string> >hash;
    cin>>n;
    while(n--)
    {
        string str;
        cin>>str;
        int a;
        cin>>a;
        if(hash.find(str)==hash.end())
        count++;
        while(a--)
        {
            string ns;
            cin>>ns;
            hash[str].push_back(ns);
        }
    }
    cout<<count<<endl;
    unordered_map<string,vector<string> >::iterator it;
    for(it=hash.begin();it!=hash.end();it++)
    {
        cout<<it->first;
        vector<string>v;
        for(int i=0;i<(it->second).size();i++)
        {
            string temp=(it->second)[i];
            v.push_back(temp);
        }
        sort(v.begin(),v.end(),dec);
        bool vis[v.size()];
        memset(vis,false,sizeof(vis));
        for(int i=0;i<v.size();i++)
        {
            if(!vis[i])
            {
                for(int j=i+1;j<v.size();j++)
                {
                    if(v[j]==v[i].substr(v[i].length()-v[j].length(),v[j].length()))
                    vis[j]=true;
                }
                cout<<" "<<v[i];
            }
        }
        cout<<endl;
    }


    return 0;
}
error: no matching function for call to ‘sort(std::vector<std::__cxx11::basic_string<char> >::iterator, std::vector<std::__cxx11::basic_string<char> >::iterator, <unresolved overloaded function type>)’