我在Effective STL中注意到了
vector是默认情况下应该使用的序列类型.
这是什么意思?似乎忽略效率vector可以做任何事情.
任何人都可以给我一个vector不可行的选择但list必须使用的场景吗?
我的基本理解是没有纯虚函数的实现,但是,有人告诉我可能有纯虚函数的实现.
class A {
public:
virtual void f() = 0;
};
void A::f() {
cout<<"Test"<<endl;
}
Run Code Online (Sandbox Code Playgroud)
代码是否正常?
使其成为具有实现的纯虚函数的目的是什么?
我有一个问题hash_map,并map在C++中.我明白这map是STL,但hash_map不是标准.这两者有什么区别?
我对volatile和mutable之间的区别有疑问.我注意到这两个都意味着它可以改变.还有什么?它们是一样的吗?有什么不同?它们适用于哪里?为什么提出这两个想法?如何以不同的方式使用它们?
非常感谢.
队列和堆栈是广泛提到的结构.但是,在C++中,对于队列,您可以通过两种方式完成:
#include <queue>
#include <deque>
Run Code Online (Sandbox Code Playgroud)
但对于堆栈,你只能这样做
#include <stack>
Run Code Online (Sandbox Code Playgroud)
我的问题是,队列和双端队列之间有什么区别,为什么提出两个结构?对于堆栈,可以包含任何其他结构吗?
我不知道如何在C++中使用哈希函数,但我知道我们可以使用hash_map.g ++是否通过简单包含来支持#include <hash_map>?使用什么简单的例子hash_map?
我发现有三种方法可以捕获异常,有什么区别?
1)按价值捕获;
2)引用参考;
3)用指针抓住;
我只知道按值捕获将调用该对象的两个副本,通过引用捕获将调用一个.那么指针捕获怎么样?什么时候用指针捕捉?除了抛出一个对象,我可以抛出一个像这样的对象的指针吗?
class A {}
void f() {
A *p = new A();
throw p;
}
Run Code Online (Sandbox Code Playgroud) 我对单身人士模式有疑问.
我在单例类中看到了两个关于静态成员的案例.
首先它是一个像这样的对象
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) 我必须返回上一级递归.是下面的语法吗?
void f()
{
// some code here
//
return;
}
Run Code Online (Sandbox Code Playgroud) 我有一个关于C++中运算符重载的返回值的问题.通常,我发现了两种情况,一种是按值返回,一种是按引用返回.那么这个规则是什么呢?特别是在可以连续使用操作员的情况下,例如cout<<x<<y.
例如,当实现+操作"string +(string)"时.你将如何通过ref或val返回返回值.