1)typedef'ing在实践中使用的约定是什么
就像是
typedef std::map<SomeClass*, SomeOtherClass> [SomeStandardName>]
typedef std::map<SomeClass*, std<SomeOtherClass> > <[SomeStandardName]
Run Code Online (Sandbox Code Playgroud)
2)你通常把typedef:header文件放在全局,本地的类中?
3)你是typedef迭代器还是const map <>版本?
4)假设你有两个不同概念使用的地图,你创建两个独立的typedef吗?
typedef map<string, SomeClass *> IDToSomeClassMap;
typedef map<string, SomeClass *> DescriptionToSomeClassMap;
Run Code Online (Sandbox Code Playgroud)
谢谢
编辑#1
我特别感兴趣的是typedef STL地图,比如
typedef map<int, string> IdToDescriptionMap
Run Code Online (Sandbox Code Playgroud)
要么
typedef map<int, string> IdToDescription
Run Code Online (Sandbox Code Playgroud)
什么是常见做法?
Not*_*ure 16
我更喜欢以下约定:
typedef std::map< Foo, Bar > FooToBarMap
Run Code Online (Sandbox Code Playgroud)
我故意避免使用typedef的迭代器,我更喜欢将它们明确地称为:
FooToBarMap::const_iterator
Run Code Online (Sandbox Code Playgroud)
因为迭代器已经是事实上的标准typename.我发现,在浏览代码时,FooToBarMapConstIter实际上不太清晰.