小编use*_*213的帖子

从范围(0:10 ^ 12)生成整数随机数

我想生成介于0到10 ^ 12之间的10000个整数随机数.通常,代码看起来像这样:

x <- sample(0:1000000000000,10000,replace=T)
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误消息:

Error in 0:1000000000000 : result would be too long a vector
Run Code Online (Sandbox Code Playgroud)

是否有一个更有效的内存方法,不必将10 ^ 12个整数放在一个向量中,只是为了获得大小为10000的样本?如果没有,有没有办法增加向量的最大大小?我正在使用具有12GB可用RAM的64位操作系统.

random numbers r range

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

根据类中的字段选择方法

所以我有一个包含字符串字段的类:

public class A {
    private String type = ...
    public String getType(){
        return this.type;
    }
    public void setType(String type){
        this.type = type;
    }
}
Run Code Online (Sandbox Code Playgroud)

我还列出了所有可能的类型,将来有十二种甚至更多.

现在我想编写一个获取类A对象的方法,并根据类中的"类型"调用特定方法.有没有比编写12个(或更多)if语句更聪明的解决方案?
通常我会使用访问者模式,但我不想创建十二个新类.

编辑:
我最终创建了一个

Map<String,Function<A,String>> map = new HashMap<String,Function<A,String>>
Run Code Online (Sandbox Code Playgroud)

然后打电话

A a;
...
map.get(a.getType).apply(a);
Run Code Online (Sandbox Code Playgroud)

java field visitor-pattern

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

C/C++:类中的双常量是不准确的

我正在用C++编写一个类,它需要一些可以在整个类中访问的常量.通常我会使用#define,一个常量或静态声明但是有一些奇怪的事情发生:所以我举例说

#define Rm 8.3144621

std::cout << Rm << std::endl;

打印8.31446.

我也试过了

#define Rm 831.44621e-2
Run Code Online (Sandbox Code Playgroud)

const double Rm = 8.3144621

static double Rm = 8.3144621

以及每种可能的方法来初始化或强制转换为双常数.

有没有解决方案或我必须使用字段?

c++ double constants

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

将字符移动到字符串会使迭代器失效吗?

因此,遍历字符串并使用operator[]或插入更改字符可能会使迭代器无效.

像这样的迭代也是如此吗?

std::string str = "ABCD";
for(auto&& c : str){
    for(int i = 0; i < 3; ++i){
        switch(c) {
            case 'A':
                c = 'B';
                break;
            case 'B':
                c = 'C';
                break;
            /*...*/
        }
        //do something
    }
}
Run Code Online (Sandbox Code Playgroud)

这段代码适用于gcc和msvc,但我不知道我是否可以信任它.我正在使用C++ 14.

c++ string iterator move

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

标签 统计

c++ ×2

constants ×1

double ×1

field ×1

iterator ×1

java ×1

move ×1

numbers ×1

r ×1

random ×1

range ×1

string ×1

visitor-pattern ×1