小编sky*_*oor的帖子

STL中的向量与列表

我在Effective STL中注意到了

vector是默认情况下应该使用的序列类型.

这是什么意思?似乎忽略效率vector可以做任何事情.

任何人都可以给我一个vector不可行的选择但list必须使用的场景吗?

c++ stl list vector

213
推荐指数
12
解决办法
27万
查看次数

纯虚函数与实现

我的基本理解是没有纯虚函数的实现,但是,有人告诉我可能有纯虚函数的实现.

class A {
public:
    virtual void f() = 0;
};

void A::f() {
    cout<<"Test"<<endl;
}
Run Code Online (Sandbox Code Playgroud)

代码是否正常?

使其成为具有实现的纯虚函数的目的是什么?

c++ pure-virtual

162
推荐指数
6
解决办法
8万
查看次数

C++中的map与hash_map

我有一个问题hash_map,并map在C++中.我明白这map是STL,但hash_map不是标准.这两者有什么区别?

c++ hashmap map

114
推荐指数
3
解决办法
15万
查看次数

C++中的volatile与mutable

我对volatile和mutable之间的区别有疑问.我注意到这两个都意味着它可以改变.还有什么?它们是一样的吗?有什么不同?它们适用于哪里?为什么提出这两个想法?如何以不同的方式使用它们?

非常感谢.

c++ mutable volatile

84
推荐指数
6
解决办法
5万
查看次数

c ++ deque vs queue vs stack

队列和堆栈是广泛提到的结构.但是,在C++中,对于队列,您可以通过两种方式完成:

#include <queue>
#include <deque>
Run Code Online (Sandbox Code Playgroud)

但对于堆栈,你只能这样做

#include <stack>
Run Code Online (Sandbox Code Playgroud)

我的问题是,队列和双端队列之间有什么区别,为什么提出两个结构?对于堆栈,可以包含任何其他结构吗?

c++ containers

73
推荐指数
6
解决办法
7万
查看次数

我想在C++中看到一个hash_map示例

我不知道如何在C++中使用哈希函数,但我知道我们可以使用hash_map.g ++是否通过简单包含来支持#include <hash_map>?使用什么简单的例子hash_map

c++ hashmap

50
推荐指数
3
解决办法
10万
查看次数

在C++中通过指针捕获异常

我发现有三种方法可以捕获异常,有什么区别?

1)按价值捕获;

2)引用参考;

3)用指针抓住;

我只知道按值捕获将调用该对象的两个副本,通过引用捕获将调用一个.那么指针捕获怎么样?什么时候用指针捕捉?除了抛出一个对象,我可以抛出一个像这样的对象的指针吗?

class A {}

void f() {

  A *p = new A();
        throw p;


}
Run Code Online (Sandbox Code Playgroud)

c++ exception-handling try-catch throw

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

C++中的单例模式

我对单身人士模式有疑问.

我在单例类中看到了两个关于静态成员的案例.

首先它是一个像这样的对象

class CMySingleton
{
public:
  static CMySingleton& Instance()
  {
    static CMySingleton singleton;
    return singleton;
  }

// Other non-static member functions
private:
  CMySingleton() {}                                  // Private constructor
  ~CMySingleton() {}
  CMySingleton(const CMySingleton&);                 // Prevent copy-construction
  CMySingleton& operator=(const CMySingleton&);      // Prevent assignment
};
Run Code Online (Sandbox Code Playgroud)

一个是指针,就像这样

class GlobalClass
{
    int m_value;
    static GlobalClass *s_instance;
    GlobalClass(int v = 0)
    {
        m_value = v;
    }
  public:
    int get_value()
    {
        return m_value;
    }
    void set_value(int v)
    {
        m_value = v;
    }
    static GlobalClass *instance()
    {
        if …
Run Code Online (Sandbox Code Playgroud)

c++ singleton

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

我可以返回void函数吗?

我必须返回上一级递归.是下面的语法吗?

void f()
{
   // some code here
   //
   return;
}
Run Code Online (Sandbox Code Playgroud)

c++

45
推荐指数
3
解决办法
7万
查看次数

C++中运算符重载的返回值

我有一个关于C++中运算符重载的返回值的问题.通常,我发现了两种情况,一种是按值返回,一种是按引用返回.那么这个规则是什么呢?特别是在可以连续使用操作员的情况下,例如cout<<x<<y.

例如,当实现+操作"string +(string)"时.你将如何通过ref或val返回返回值.

c++ operator-overloading

45
推荐指数
3
解决办法
5万
查看次数