你能不能给我一个提示,是否有一种简单的方法,使用标准的stl或boost容器来模拟SQL表结构,并能够按多列排序(并且可能有聚簇索引)?例如,用于保存给定表的东西,按类型,颜色,重量排序:
ID Type Color Weight Hex
1 1 NB 3.5 12
2 1 NB 3.5 14
3 1 NB 3.8 03
4 1 PP 4.0 10
5 2 DP 3.5 15
6 2 O 5.0 12
7 2 O 6.0 09
Run Code Online (Sandbox Code Playgroud)
谢谢
我有一个有趣(或愚蠢)的面试问题.好吧,我知道下面的代码不会编译,但我无法回答如何修改类C以使代码编译.我被告知答案是喜欢Test(C(1));或void Test(C c)不可接受的.你能帮助我吗?
这是问题:
Q11.下面的代码会编译吗?如果没有,请进行任何您想要C类的更改,以便编译代码.
class C
{
public:
C(int i) {}
~C() {}
};
void Test(C &c)
{
}
int main(int, char*)
{
Test(1);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我已经阅读了关于该主题的其他 stackoverflow 问题,但我真的对不完整的类型和这个 C++ 规范段落 §5.3.5/5 感到困惑:
如果被删除的对象在删除点具有不完整的类类型,并且完整的类具有非平凡的析构函数或释放函数,则行为未定义。
举个例子, .h :
template<class T> class my_scoped_ptr
{
private:
T *t;
public:
my_scoped_ptr(T * _t) : t(_t) {}
~my_scoped_ptr() {
typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
(void) sizeof(type_must_be_complete);
delete t;
}
};
class Holder
{
public:
Holder();
~Holder();
private:
class Impl;
my_scoped_ptr<Impl> _mptr;
};
Run Code Online (Sandbox Code Playgroud)
.cpp
class Holder::Impl {};
Holder::Holder() : _mptr(new Impl) {}
Holder::~Holder() {}
Run Code Online (Sandbox Code Playgroud)
类 Holder 的非内联析构函数是如何突然让 Impl 完成的?为什么默认析构函数不足以使类完整?为什么 shared_ptr 在不需要析构函数的情况下工作得很好?
调用语法是什么以及它做了什么?它的c ++标准是什么?
shared_ptr<int> p{new int{10}};
Run Code Online (Sandbox Code Playgroud)
我对第一组花括号感到困惑{}.我想,第二组是创建一个10个元素的临时对象?