小编ibp*_*p73的帖子

C++ STL容器的空间复杂性

我找到了各种资源来争取各种C++ STL容器的时间复杂性.在哪里可以找到使用C++ STL容器所涉及的空间复杂性?

我知道,对于大多数容器而言,这种关系与所包含的元素数量呈线性关系.但是使用哈希函数的容器呢?在这种情况下可以做出任何保证吗?

c++ stl c++11

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

函数调用返回null对象时返回的布尔值

在C++中对空对象进行fucntion调用时返回的布尔值是多少?

ClassDummy* dummy = NULL;
if (!dummy->dummy_function(1,2,3)) {
  // Do Something
}
Run Code Online (Sandbox Code Playgroud)

根据C++ 11标准,这不应该返回错误吗?

c++ c++11

5
推荐指数
2
解决办法
284
查看次数

C++理解复杂函数签名

在阅读一些代码时,我遇到了这个功能.我很难理解函数的签名.在我能够制作以下代码的头部或尾部之前,我需要了解哪些事情?我一直在使用C++一段时间.我知道模板,函数指针是什么.但是,我无法弄清楚T::*可能意味着什么,从一开始就_Defer意味着语义.此外,该功能的第一行似乎非常令人生畏.在尝试重新评估此代码之前,是否有一些我可以阅读的资源?

template <typename T>
_Defer<void(*(PID<T>, void (T::*)(void)))
       (const PID<T>&, void (T::*)(void))>
defer(const PID<T>& pid, void (T::*method)(void))
{
  void (*dispatch)(const PID<T>&, void (T::*)(void)) =
    &process::template dispatch<T>;
  return std::tr1::bind(dispatch, pid, method);
}
Run Code Online (Sandbox Code Playgroud)

资料来源:https://github.com/3rdparty/libprocess/blob/master/include/process/defer.hpp

c++

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

C++ STL中向量的恒定时间交换逻辑

为什么交换两个C++ STL向量的内容所需的时间复杂度与相应向量的大小无关?

参考:http://www.cplusplus.com/reference/vector/vector/swap/

c++ stl vector c++11

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

一个类可以继承自己的另一个类模板吗?

我正在浏览一些代码,我发现了这样的事情:

class GarbageCollectorProcess : public process::Process<GarbageCollectorProcess>
Run Code Online (Sandbox Code Playgroud)

我想知道这是否有效.如果是,那么这不应该导致某种自定义循环,因为我们使用另一个依赖于GarbageCollectorProcess定义的类来定义GarbageCollectorProcess吗?

c++ inheritance c++11 template-classes

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

标签 统计

c++ ×5

c++11 ×4

stl ×2

inheritance ×1

template-classes ×1

vector ×1