小编Fan*_*Fan的帖子

C++\templace_back参数

这是我日常工作中的一段代码.我只想问你两种情况之间是否存在差异,特别是在性能方面.

std::vector< std::pair<std::string, std::string> > aVec;

// case 1
aVec.emplace_back("hello", "bonjour");

// case 2
aVec.emplace_back(std::pair("hello", "bonjour"));
Run Code Online (Sandbox Code Playgroud)

以下问题:

这两个案例的std :: list怎么样?

c++ performance c++11

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

shared_ptr的引用仍然是指针吗?

最近我对我的工作有一个疑问shared_ptr.这是代码.

for (const auto & aRef : aVec) {
    THROW_RUNTIME_IFNULLPTR(aRef);
    // do sth
}
Run Code Online (Sandbox Code Playgroud)

这是我同事的代码.在我看来,aRef是一个永远不会为空的引用.虽然我被告知(by auto &)aRef仍然是一个指针,所以它可能是空的.参考只是不增加计数器.我很困惑.

但是,应该是这样的

for (const auto & aRef : aVec) {
    // THROW_RUNTIME_IFNULLPTR(aRef);
    if ( aRef ) {
        aRef->getX();
    }
    // do sth
} 
Run Code Online (Sandbox Code Playgroud)

我错了吗?我不认为那aRef是一个指针.

c++ reference shared-ptr

3
推荐指数
2
解决办法
347
查看次数

标签 统计

c++ ×2

c++11 ×1

performance ×1

reference ×1

shared-ptr ×1