不是 class、命名空间或枚举?
Not a class, namespace or enumeration?
我的老师给了我一个代码来学习,我不知道什么时候我 typedef
地图(正如我在代码中评论的那样)它工作正常但是当我定义时没有 typedef
它似乎不起作用。如果有人能好心解释一下,我将不胜感激!我阅读了一些关于 "cyclic dependency" 的内容,但不确定这里是否如此。
int main (){
map <string, string> ri; // typedef map<string, string> maps;
//maps ri;
ri.insert(pair<string, string>{"Smoljan", "Dragan"});
ri.insert(pair<string, string>{"Smolver", "Tina"});
ri.insert(pair<string, string>{"Mirkovic", "Sonja"});
string in;
cout<<"Input:";
cin>>in;
string high(in);
high.back()++;
auto low = ri.lower_bound(in);
/*(maps)*/ ri::key_compare comp; //<----- here is the error
//....
}
嗯,原因很清楚:ri 不是 class、命名空间或枚举 。它是一个对象。
您需要在分号前放置您使用 typedef 放置的内容:type name.
map <string, string>::key_compare comp;
或 (C++11)
decltype(ri)::key_compare comp;
我的老师给了我一个代码来学习,我不知道什么时候我 typedef
地图(正如我在代码中评论的那样)它工作正常但是当我定义时没有 typedef
它似乎不起作用。如果有人能好心解释一下,我将不胜感激!我阅读了一些关于 "cyclic dependency" 的内容,但不确定这里是否如此。
int main (){
map <string, string> ri; // typedef map<string, string> maps;
//maps ri;
ri.insert(pair<string, string>{"Smoljan", "Dragan"});
ri.insert(pair<string, string>{"Smolver", "Tina"});
ri.insert(pair<string, string>{"Mirkovic", "Sonja"});
string in;
cout<<"Input:";
cin>>in;
string high(in);
high.back()++;
auto low = ri.lower_bound(in);
/*(maps)*/ ri::key_compare comp; //<----- here is the error
//....
}
嗯,原因很清楚:ri 不是 class、命名空间或枚举 。它是一个对象。
您需要在分号前放置您使用 typedef 放置的内容:type name.
map <string, string>::key_compare comp;
或 (C++11)
decltype(ri)::key_compare comp;