强类型枚举
在C++11之前,枚举类型全局可见,两种枚举之间不可以叫相同名称。而C++11中不同枚举类型内部不会互相影响,可以叫同一个名称。
C11enum
图中,C++11type的两个枚举MyEnum0和MyEnum1都可以有E1类型。
C++97type的MyEnum2和MyEnum3中的E1互相影响,无法编译。
emplace和emplace_back函数
emplace中文意思为“安置,安放”。
在vector的最后添加一个元素可以有push_back和emplace_back。
其差别在于,push_back会在内存某个位置构造该对象,然后vector末尾拷贝临时对象,最后临时对象销毁。
emplace_back直接在vector末尾构造对象。
使用这个函数对于构造和析构比较耗时的对象差别明显。
网友评论