如果只是int,用pair<int, bool>也比用int*合适把,如果是复杂对象,也不用每次new,用placement_new啊。不过用pair实际上就是自己简单组一个optional了
【 在 howry 的大作中提到: 】
: 比如一个类里面有一个 int *a,某个成员函数需要先判断a是否为nullptr,如果是,则new int一下,然后赋值。另一个成员函数要用到这个a,先判断是否有值,然后有就用,用完了会delete a; 且设置a=nullptr。如此反复。感觉这种方式会不断申请很小的内存,又释放。
: 而现在有了std::optional之后,可以直接std::optional<int> a; 没有值时设置为nullopt,有值时进行直接赋值,用完了又置为nullopt。
: 那么以上两种方式,怎么判断其性能开销呢?用optional肯定更方便
--
FROM 203.208.61.*