something new

来源:互联网 发布:淘宝兴趣人群海报 编辑:程序博客网 时间:2024/06/06 03:43

新的写法

说明:以下都是记录日常中遇到的一些很少见到过的写法,时代在进步,c++在发展,下面有些可能是新写法,也有可能是老写法。

  1. new(space){t};

    说明:
    在a tour of c++中有这么一个写法

template<typename T>void Vector<T>::push_back(const T& t){    if (capacity()<size()+1)          // make sure we have space for t    reser ve(siz e()==0?8:2∗siz e()); // double the capacity    new(space){t};                    // initialize *space to t    ++space;}

其中space是一个成员变量:T* space;
看到new(space){t};和后面的注释,大致明白干了什么了,但理论依据不清楚,

描述:
在c++14的草案中找到了相关的答案

//This can be useful for constructing an object at a known address:void* place = operator new(sizeof(Something));Something* p = new (place) Something();

在已知的内存位置构造一个对象,标题中是不需要考虑返回值

  1. 多使用vector而不是list
    这是一个说法,而不是写法。最新标准(到c++14),建议小数据量时使用vector,除非有特殊的理由,才使用其他容器。因为vector性能比其他的高太多了。看起来vecotr才是stl的亲儿子。

– 待续

0 0
原创粉丝点击