小编dan*_*jar的帖子

你能在ORDER BY中添加一个if语句吗?

我想要实现以下目标:

我有一个ORDER BY语句,它可能会根据存储在A列中的值而有所不同.

例如:

如果Type为Member,如果Type为Group,则按成员姓氏排序,按Group Name排序

都按升序排列.

我对最终陈述的最佳猜测是:

SELECT * 
  FROM table 
 WHERE STATUS = 'Active' 
 ORDER BY ((LNAME if TYPE = 'Member') OR (GROUPNAME if TYPE = 'Group')) ASC
Run Code Online (Sandbox Code Playgroud)

我知道这是不正确的,但无法在其他地方找到信息.有任何想法吗?

php mysql sorting

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

受保护和私有有什么区别?

可能重复:
私有和受保护的成员:C++

我不明白受保护成员或私有成员或方法之间的区别,因为我认为它们都会隐藏成员或从类外部访问的函数.

protected和private关键字有什么区别?

c++ oop private class protected

34
推荐指数
5
解决办法
8万
查看次数

为什么我们不能在他们的声明中初始化班级成员?

我想知道为什么我们不能在他们的声明中初始化成员.

class Foo
{
    int Bar = 42; // this is invalid
};
Run Code Online (Sandbox Code Playgroud)

相当于使用构造函数初始化列表.

class Foo
{
    int Bar;
public:
    Foo() : Bar(42) {}
}
Run Code Online (Sandbox Code Playgroud)

我个人的理解是,上面的例子更具表现力和意图.此外,这是一种较短的语法.而且我没有看到任何与其他语言元素混淆的可能性.

对此有任何官方澄清吗?

c++ constructor initialization class member

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

眼睛空间坐标究竟是什么?

当我学习OpenGL时,我常常偶然发现所谓的眼睛空间坐标.

如果我是对的,你通常有三个矩阵.模型矩阵,视图矩阵和投影矩阵.虽然我不完全确定背后的数学是如何工作的,但我确实知道转换坐标到世界空间,视图空间和屏幕空间.

但是眼睛空间在哪里,我需要将哪些矩阵转换为眼睛空间?

opengl camera projection matrix coordinates

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

为什么floor不返回整数?

刚才我偶然发现了一个事实,即C++函数floor返回您传递给它的同类型,无论是float,double还是这样.

根据该引用,该函数返回向下舍入的整数值.为什么这不是整数?

c c++

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

我是否必须将OpenGL数据类型(GLint,CLchar,...)用于跨平台游戏?

我有一个简短的问题.为什么OpenGL为标准类型(如int,unsigned int,char等)提供了自己的数据类型?我是否必须使用它们而不是使用C++数据类型构建?

例如OpenGL的相当于unsigned intGLuint和交流串有GLchar*代替char*.

c++ opengl types cross-platform

26
推荐指数
2
解决办法
7126
查看次数

如何检查std :: async任务是否完成?

在我的图形应用程序中,我想在另一个线程中生成批处理网格.因此我异步调用成员函数使用std::async.

task = async(launch::async, &Class::Meshing, this, Data(...));
Run Code Online (Sandbox Code Playgroud)

在我的更新循环中,我尝试检查线程是否准备好.如果是,我会将网格发送到视频卡并启动下一个线程.如果没有,我将跳过这些操作.

#include <future>
using namespace std;

class Class
{
public:
    void Update()
    {
        if(task.finished()) // this method does not exist
        {
            Data data = task.get();
            // ...
            task = async(launch::async, &Class::Meshing, this, Data(/* ... */));
        }
    }

private:
    struct Data
    {
        // ...
    };
    future<Data> task;
    Data Meshing(Data data)
    {
        // ...
    }
};
Run Code Online (Sandbox Code Playgroud)

如何在不更新功能的情况下检查异步线程是否完成?

c++ multithreading asynchronous std c++11

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

(auto i:unordered_map)是否保证每次都有相同的顺序?

当我std::unordered_map使用基于for循环的范围迭代两次时,顺序是否保证相等?

std::unordered_map<std::string, std::string> map;

std::string query = "INSERT INTO table (";
bool first = true;
for(auto i : map)
{
    if(first) first = false;
    else query += ", ";
    query += i.first;
}
query += ") ";

query += "VALUES (";
first = true;
for(auto i : map)
{
    if(first) first = false;
    else query += ", ";
    query += i.second;
}
query += ");"
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,结果字符串应采用该形式.因此,重要的是两个时间,迭代的顺序是相同的.

INSERT INTO table (key1, key2, key3) VALUES (value1, value2, value3);
Run Code Online (Sandbox Code Playgroud)

这是用C++保证的吗?

c++ standards for-loop unordered-map

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

我何时应该在CMake中使用$ {...}包装变量?

我想知道为什么CMake中的变量经常用美元符号和大括号括起来.例如,我在CMake教程中看到了这个调用.

include_directories(${PROJECT_BINARY_DIR})
Run Code Online (Sandbox Code Playgroud)

但是从我的尝试来看,这也是一样的.

include_directories(PROJECT_BINARY_DIR)
Run Code Online (Sandbox Code Playgroud)

${...}什么时候需要包装,这是什么意思?为什么变量经常包含在内,即使它没有任何区别?

cmake

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

如何直接将成员函数绑定到Visual Studio 11中的std :: function?

我可以轻松地将成员函数绑定到a std::function带有capture子句的lambda表达式.

class Class
{
    Class()
    {
        Register([=](int n){ Function(n); });
    }

    void Register(std::function<void(int)> Callback)
    {

    }

    void Function(int Number)
    {

    }
};
Run Code Online (Sandbox Code Playgroud)

但我想直接绑定它们,如下所示.

// ...
Register(&Class::Function);
// ...
Run Code Online (Sandbox Code Playgroud)

我认为根据C++ 11标准,这应该得到支持.但是,在Visual Studio 11中,我收到了这些编译器错误.

错误C2440:'换行':无法从'int'转换为'Class*'

错误C2647:'.*':无法在'int'上取消引用'void(__thiscall Class ::*)(int)'

c++ member-functions c++11 std-function

19
推荐指数
4
解决办法
4万
查看次数