小编Qwe*_*pal的帖子

如何在C++中实现类似SQL的容器

你能不能给我一个提示,是否有一种简单的方法,使用标准的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)

谢谢

boost c++11

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

将对象传递给参考功能,面试测试

我有一个有趣(或愚蠢)的面试问题.好吧,我知道下面的代码不会编译,但我无法回答如何修改类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)

c++ reference parameter-passing

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

销毁 Incomplete 类型的对象

我已经阅读了关于该主题的其他 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++

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

C++新语法,请解释一下

调用语法是什么以及它做了什么?它的c ++标准是什么?

shared_ptr<int> p{new int{10}};
Run Code Online (Sandbox Code Playgroud)

我对第一组花括号感到困惑{}.我想,第二组是创建一个10个元素的临时对象?

c++

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

标签 统计

c++ ×3

boost ×1

c++11 ×1

parameter-passing ×1

reference ×1