小编Doe*_*ohn的帖子

push_back 比 emplace_back 更有效率?

我想看看 push_back 和 emplace_back 之间的区别,因为在几个地方我读到了建议,因为现在最好使用 emplace_back,因为“它可以完成 push_back 可以做的所有事情,甚至更多”,所以我希望 ti 更有效。但令我惊讶的是

#include <iostream>     
#include <vector>    

class A
{
    public:
    A() {std::cout << "A const" << std::endl;}
    ~A() {std::cout << "A dest" << std::endl;}
    A(const A& a) {std::cout << "A copy const" << std::endl;}
    A(A&& a) {std::cout << "A move const" << std::endl;}
    A& operator=(const A& a) {std::cout << "A copy operator=" << std::endl; return *this; }
    A& operator=(A&& a) {std::cout << "A move operator=" << std::endl;  return *this; }
};

int …
Run Code Online (Sandbox Code Playgroud)

c++ vector c++11

5
推荐指数
1
解决办法
218
查看次数

旧 C++ 版本中 struct 和 class 之间的区别

是否总是在 C++ 中class并且struct仅在默认访问说明符上有所不同?或者在某些早期版本中,C++struct更像 C struct?

c++ oop class c++98

1
推荐指数
1
解决办法
76
查看次数

为什么 std::shared_ptr 被认为是“沉重的”和“昂贵的”,而 std::array“与普通(c 风格)数组具有相同的性能”?

我不太明白为什么 std::shared_ptr 被认为是“沉重的”和“昂贵的”,但 std::array 的“性能与普通(c 风格)数组相同”?和 shared-ptr 一样,我们有指针和两个计数器:用于共享和弱引用。在 std::array 中,我们有一个指向数据的指针和它的大小(基本上与 shared_ptr 中的指针计数相同)。似乎是相同的开销,尽管它写的到处都是“C 样式数组的性能和可访问性”。

c++ c++11

-3
推荐指数
1
解决办法
80
查看次数

标签 统计

c++ ×3

c++11 ×2

c++98 ×1

class ×1

oop ×1

vector ×1