小编Ria*_*iaD的帖子

编译时间素数检查

我需要在编译时检查一些整数素数(将布尔值作为模板参数).

我写的代码做得很好:

#include <type_traits>
namespace impl {
    template <int n, long long i>
    struct PrimeChecker {
        typedef typename std::conditional<
                    (i * i > n),
                    std::true_type,
                    typename std::conditional<
                        n % i == 0,
                        std::false_type,
                        typename PrimeChecker<n, (i * i > n ) ? -1 : i + 1>::type
                    >::type
                >::type type;
    };
    template <int n>
    struct PrimeChecker<n, -1> {
        typedef void type;
    };
} // namespace impl
template<int n>
struct IsPrime {
    typedef typename impl::PrimeChecker<n, 2>::type type;
};

template<>
struct IsPrime<1> …
Run Code Online (Sandbox Code Playgroud)

c++ templates compile-time template-meta-programming c++11

17
推荐指数
2
解决办法
2150
查看次数

将字符串转换为int

我的代码

<?php
var_dump('0xD' * 1 );
var_dump((int)'0xD');
var_dump(intval('0xD'));
var_dump((float)'0xD');
Run Code Online (Sandbox Code Playgroud)

实际结果:

int(13)
int(0)
int(0)
float(0)
Run Code Online (Sandbox Code Playgroud)

为什么前两个条件的结果不一样?你能给我正确的文件吗?

我找到的只是

  • 类型转换:PHP中的类型转换与C中的类型相同:所需类型的名称在要转换的变量之前写在括号中.在某些类型之间进行投射时,可能并不明显会发生什么.有关更多信息,请参阅以下部分:...
  • 转换为整数:从字符串:请参见字符串转换为数字
  • 字符串转换为数字在数字上下文中计算字符串时,结果值和类型将按如下方式确定.

所以,据我所知,文档说直接转换为int并通过放入数字上下文应该是相同的.我的错是什么?

增加:在回答之前尝试检查第一个和第二个代码(和输出).

php type-conversion

16
推荐指数
1
解决办法
3万
查看次数

为什么标准java类的clone()返回Object而不是实际类型

java中允许指定函数返回的类型,例如代码后面

public class Test {

    static class Dad {
        Dad me() {
            return this;
        }
    }

    static class Son extends Dad {
        Son me() {
            return this;
        }
    }
 }
Run Code Online (Sandbox Code Playgroud)

已验证.

我们来看ArrayList课.它具有重写clone()功能(至少我在Oracle jdk 1.7源代码中看到它)

public Object clone() {
    try {
        @SuppressWarnings("unchecked")
            ArrayList<E> v = (ArrayList<E>) super.clone();
        v.elementData = Arrays.copyOf(elementData, size);
        v.modCount = 0;
        return v;
    } catch (CloneNotSupportedException e) {
        // this shouldn't happen, since we are Cloneable
        throw new InternalError();
    }
}
Run Code Online (Sandbox Code Playgroud)

有什么不回报ArrayList<E>但只是 …

java

16
推荐指数
2
解决办法
2241
查看次数

如果有,则调用函数,否则忽略

我现在想要制作模板,将一些元素推送到支持push_back运算符的向量和其他类型.

我可以这样做

template<typename T>
T fill(size_t n) {
    T v;
    //(1)
    for(size_t i = 0; i < n; ++i){
        v.push_back(generate_some_how());
    }
    return v;
}
Run Code Online (Sandbox Code Playgroud)

有用.但现在我想提高支持它的类型的速度v.reserve(n);而不是(1).但我仍然希望能够为无法编译的类型编译此代码reserve

这是一种简单的方法吗?

我知道我可能专门研究硬编码类型但它看起来并不好.

C++ 11没问题.

c++ templates c++11

15
推荐指数
2
解决办法
741
查看次数

找到N个最接近的数字

有一个二维数组,如 -

a[0] = [ 0 , 4 , 9 ]
a[1] = [ 2 , 6 , 11 ]
a[2] = [ 3 , 8 , 13 ]
a[3] = [ 7 , 12 ]

需要从每个子阵列中选择一个元素,使得结果数组最接近,即集合中最高数字和最低数字之间的差异最小.

上面的答案是= [ 9 , 6 , 8 , 7 ].

做了算法,但感觉不是很好.在时间和空间复杂性方面,这样做的有效算法是什么?

编辑 - 我的算法(在python中) -

INPUT - Dictionary : table{}
OUTPUT - Dictionary : low_table{}
#
N = len(table)
for word_key in table:
    for init in table[word_key]:
        temp_table = copy.copy(table)
        del …

python algorithm

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

从整数数组中删除重复项

我有编码这个问题:

编写一个名为static的方法removeDuplicates,该方法将整数数组作为输入,并返回一个新的整数数组,并删除所有重复项.例如,如果输入数组具有元素{4,3,3,4,5,2,4},则生成的数组应为{4,3,5,2}

这是我到目前为止所做的

public static int[] removeDuplicates(int []s){
    int [] k = new int[s.length];
    k[0]=s[0];
    int m =1;
    for(int i=1;i<s.length;++i){
        if(s[i]!=s[i-1]){
            k[m]=s[i];
            ++m;
        }//endIF
    }//endFori
    return k;
}//endMethod
Run Code Online (Sandbox Code Playgroud)

java arrays

12
推荐指数
3
解决办法
5万
查看次数

auto对编译时的影响

我们在C++ 11中获得的新auto关键字对我来说看起来非常模糊,所以我的问题是 - 它会像模板那样产生相同的编译时间吗?

关于多态lambda的同样问题:

 [](auto val) {...}
Run Code Online (Sandbox Code Playgroud)

这本质上是一个模板lambda - 这会影响编译时间吗?

c++ c++14

12
推荐指数
2
解决办法
1096
查看次数

php url查询没有索引的嵌套数组

我正在使用第三方API,它接收几个必须编码的参数,如下所示:

text[]=Hello%20World&text[]=How%20are%20you?&html[]=<p>Just%20fine,%20thank%20you</p>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,此API可以接受文本的多个参数,也可以接受HTML(不在示例调用中).

我已经使用http_build_query为其他API正确构建查询字符串

$params['text'][] = 'Hello World';
$params['text'][] = 'How are you?';
$params['html'][] = '<p>Just fine, thank you</p>';

$http_query = http_build_query($params);
Run Code Online (Sandbox Code Playgroud)

这种方法的问题是它将使用数字索引构建一个查询字符串:

text[0]=Hello%20World&text[1]=How%20are%20you?&html[0]=<p>Just%20fine,%20thank%20you</p>

不幸的是,我正在使用的API不喜欢数字索引而失败.

是否有任何php函数/类方法可以帮助我快速构建这样的查询?

谢谢

php arrays function

11
推荐指数
3
解决办法
4598
查看次数

可以在线性时间内解决,在n ^ 2时间内完成

问题是这样的

建议数据结构并编写程序来计算员工(直接或间接)在线性时间内转介的员工数量.例如

  A B C D E F G 
A 0 1 0 0 0 0 0 A referred 4 (A referred B, B referred C and D and D referred E)
B 0 0 1 1 0 0 0 B referred 3 
C 0 0 0 0 0 0 0
D 0 0 0 0 1 0 0 D referred 1
E 0 0 0 0 0 0 0
F 0 0 0 0 0 0 1 F referred …
Run Code Online (Sandbox Code Playgroud)

language-agnostic algorithm performance

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

初始化变量.我不知道他们的类型[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
查看次数