【发布时间】:2016-03-27 14:23:18
【问题描述】:
我的老师给了我一个要学习的代码,我不知道什么时候我 typedef 地图(正如我在代码中评论的那样)它工作正常,但是当我在没有 typedef 的情况下定义它似乎没有工作。如果有人可以解释一下,我将不胜感激!我读过一些关于“循环依赖”的文章,但不确定是否是这种情况。
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
//....
}
【问题讨论】:
-
我没有看到
typedef和ri是一个对象。 -
那么,你能告诉我“ri::key_compare comp”是做什么的吗?
-
它无法编译,因为
ri不能与::一起使用,所以它实际上什么都不做。 -
所以只有类类型适用于 :: ?
-
不,所有范围标识符,还包括命名空间和类。从纯逻辑的角度来看,对象应该如何作为作用域工作?
标签: c++ cyclic-dependency