猿问

关于c++的stl中set集合的一些疑问

在一本书上看到如下代码:

    typedef set<int> Set;

    ....

    int ID(Set x) { ... }        //某个函数

    ....

    int main() {

    .....

    ID(Set());    //这里的 Set() 到是什么意思呢?

    ....

    }

    疑问在注释中。希望能解释详细点,谢谢

慕粉4308941
浏览 1119回答 1
1回答

onemoo

一开始的 typedef 把 Set 定义为 std::set<int> 的别名,或者说 Set 也成为类型名了。那么 int ID(Set x) { ... }   这里就是定义了函数 ID。它的参数是 Set 类型,也就是 std::set<int> 类型。 这里应该能够理解吧。下面 ID(Set()) 就是调用函数ID啊。 调用时当然需要传入参数,小括号中的 Set() 就是传入的参数。 Set() 就相当于 std::set<int>(),这是实例化了一个空set并传入。
随时随地看视频慕课网APP
我要回答