小编Ria*_*iaD的帖子

初始化变量.我不知道他们的类型[java]

class pair<U,V>{
U first;
V second;
public pair() {
    first = new U(); //error
    second = new V(); //error
}   
public pair(U f,V s){
    first = f;
    second = s;
}
}
Run Code Online (Sandbox Code Playgroud)

required:
找到的类:类型参数

是否有可能以其他方式初始化first/ secondwith(with-arguments)U/V类型的构造函数?

java generics

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

在SQL中,是否存在非聚合最小/最大运算符

有没有类似的东西

select max(val,0)
from table
Run Code Online (Sandbox Code Playgroud)

我不是要找到整个表的最大值

必须有一个比这更简单的方法吗?

select case when val > 0 then val else 0 end
from table
Run Code Online (Sandbox Code Playgroud)

编辑:我正在使用Microsoft SQL Server

sql sql-server

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

禁止使用逗号运算符

我从不使用逗号运算符.
但有时候,当我写一些递归时,我犯了一个愚蠢的错误:我忘了函数名.这就是返回最后一个操作数的原因,而不是递归调用的结果.

简化示例:

int binpow(int a,int b){
    if(!b)
        return 1;
    if(b&1)
        return a*binpow(a,b-1);
    return (a*a,b/2); // comma operator
}
Run Code Online (Sandbox Code Playgroud)

是否有可能获得编译错误而不是错误的,难以调试的代码?

c++ comma-operator

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

将所有参数移动到lambda

我想创建lambda,它将接受任意数量的参数,如:

template <typename... Args>
void f(Args... args) {
    auto l = [args...]() {
        g(args...);
    }
    // use l
}
Run Code Online (Sandbox Code Playgroud)

这里的问题是它不适用于仅移动类型.如果它只有1 arg,我会做的就像

void f(Arg arg) {
    auto l = [arg = std::move(arg)]() {
        g(move(arg));
    }
}
Run Code Online (Sandbox Code Playgroud)

如何将所有args移动到lambda?

c++ lambda variadic-templates perfect-forwarding

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

<include.hpp>和"include.hpp"之间的区别

我是C++的新手.

使用""和<>包含c ++头文件有什么区别

我试图从开源库中使用一些头文件.使用<>包含该库中的所有头文件.现在,当我在头文件中执行相同操作时,它在编译时失败.

c++ include

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

用C++模板,为什么要使用枚举

关于Scott Meyers的"Effective C++"中的第48项,我有一个简短的问题.我只是不明白从下面的书中复制的代码,

    #include <iostream>
    using namespace std;

    template <unsigned n>
    struct Factorial
    {
       enum { value=n*Factorial<n-1>::value };
    };

    template <>
    struct Factorial<0>
    {
        enum { value=1};
    };

    int main()
    {
        cout<<Factorial<5>::value<<endl;
        cout<<Factorial<10>::value<<endl;
    }
Run Code Online (Sandbox Code Playgroud)

为什么我必须在模板编程中使用枚举?有没有其他方法可以做到这一点?我在这里先向您的帮助表示感谢.

c++ effective-c++

8
推荐指数
2
解决办法
1249
查看次数

创建具有给定大小的n维向量

所以,我想要的是创建给定类型的多维向量,其中第一个维度将具有函数调用的第一个参数的大小等,例如,如果我这样做

std::size_t n = 5;
auto x = make_vector<int>(n + 1, n * 2, n * 3);
Run Code Online (Sandbox Code Playgroud)

x 应该是6x10x15 3d数组(由零组成,因为我现在要默认构造)

我试过这个:

template <typename T>
std::vector<T> make_vector(std::size_t size) {
    return std::vector<T>(size);
}

template <typename T, typename... Args>
auto make_vector(std::size_t first, Args... sizes) -> std::vector<decltype(make_vector<T>(sizes...))> {
    auto inner = make_vector<T>(sizes...);
    return std::vector<decltype(inner)>(first, inner);
}
Run Code Online (Sandbox Code Playgroud)

它似乎适用于1或2个参数,但失败的3个参数有以下错误(clang ++)

In file included from /Users/riad/ClionProjects/for-jhelper/output/run.cpp:1:
/Users/riad/ClionProjects/for-jhelper/tasks/TaskC.cpp:12:12: error: no matching function for call to 'make_vector'
                auto x = make_vector<int>(n + 1, n * 2, n * 3); …
Run Code Online (Sandbox Code Playgroud)

c++ templates template-meta-programming variadic-templates c++11

8
推荐指数
2
解决办法
1312
查看次数

在sqlite3中的OR语句:错误?

我在sqlite3中的sql查询以OR语句结束.它看起来像这样:

select
   (...)
from
    T1, T2, .... Tn

where
     (...) and
     (
     (T5.v='s1' and T6.v='s2' and T7.v='s3') OR
     (T5.v='s4' and T6.v='s5' and T7.v='s6')
     )
Run Code Online (Sandbox Code Playgroud)

查询不返回任何结果.

但是每个不同的"OR"条件都返回一些行(!)

where
     (...) and
     (
     (T5.v='s1' and T6.v='s2' and T7.v='s3')
     )
Run Code Online (Sandbox Code Playgroud)

where
     (...) and
     (
     (T5.v='s4' and T6.v='s5' and T7.v='s6')
     )
Run Code Online (Sandbox Code Playgroud)

它是sqlite3中的一个错误还是我?

$ sqlite3 -version
3.6.20
Run Code Online (Sandbox Code Playgroud)

更新:我在T5.v,T6.v和T7.v上有三个非唯一索引

sql sqlite boolean-expression

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

为什么CR LF在Windows中更改为LF?

在Windows中,当您\r\n在文本模式下从文件(或标准输入)读取字符时,\r将被删除,您只能阅读\n.

应该是这样的标准吗?

我能确定Windows上的任何编译器都适用吗?其他平台特定的字符组合是否也会\n在这些平台上被替换?

我使用此代码生成输入并使用此代码来读取它.结果在这里.你可能注意到一些错过\r

c++ windows io language-lawyer c++11

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

将自1904年以来的纳秒转换为有效的java日期

我有一个数字代表自1904年1月1日凌晨12:00以来的纳秒数.我希望实例化一个java.util.Date表示该日期的对象.我该怎么办?

java date

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