小编Thr*_*iag的帖子

<random> uniform_real_distribution,点之间的距离最小

我正在使用广场生成坐标列表

#include <random>
using namespace std;

int main(){

random_device rd;
long int seed = rd();
default_random_engine gen(seed);

double max=10.0, min=-10.0;
uniform_real_distribution<double> uni_real(min,max);

double random_x = uni_real(gen);
double random_y = uni_real(gen);

return 0;
}
Run Code Online (Sandbox Code Playgroud)

我想确保任意两点之间的距离最小.对于我的用法,当应用周期性边界条件时,这必须成立.

  • 首选解决方案是<random>库中的内置方法.有没有?
  • 第二好,任何其他包含快速执行检查的包(只要它易于使用).
  • 最糟糕的情况是,我可以编写自己的基本脚本,O(n^2)因为我现在不太关心效率.除非,有一些简单的算法可以实现这一点.

关于处理第三点或其他环境的其他问题<random>.

c++ random

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

if if(){} while()语句

我目前正在处理某人的其他代码,并有这样的声明

if(x.start()) do if(y.foo(x)) {

// Do things

}while(x.inc())
Run Code Online (Sandbox Code Playgroud)

这里x是自定义类,它包含信息y并允许以特殊顺序迭代其元素.如果相关,我会提供此信息,但我的问题更为笼统:

我认为在一个 do{}while()声明中该do部分必须跟随括号,并且这个最后while()条件的togheter 定义了do-while循环.

  • 为什么我们可以放好ifdo呢?
  • 它有什么作用?
  • 还有什么可以放在之间do{

我找不到与此相关或谷歌相关的其他问题,大多数内容与将if语句放入内容有关while loop.

c++ control-structure do-while

7
推荐指数
2
解决办法
5670
查看次数

三元运算符和增量运算符

如果不满足条件,这是重置计数器的有效/合理方式吗?这是我能想到的最紧凑的方式.

int counter = 0;
int a,b;

// Do .. and assign a and b 

counter = ((a<b) ? counter++ : 0); 
Run Code Online (Sandbox Code Playgroud)

c++ ternary-operator

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

按列标准化:data.table方式

从简单的数据表开始

ID MAX X1 X2 X3 X4
E0 9   2  1  2  3
E0 21  9  0  10 2
Run Code Online (Sandbox Code Playgroud)

我想将所有列标准化X1X4除以MAX.

这种不受欢迎的data.frame方式将是

dt$X1 <- dt$X1/dt$MAX
Run Code Online (Sandbox Code Playgroud)

什么是优雅的数据表方式?

我尝试过dt[, .SD/MAX, by = ID],但这也将MAX降低到1.

r data.table

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

带有%s和std :: string的sprintf给出了乱码

在以下代码中:

#include <string>
using namespace std;

int main(){
    char command[300];
    string stringz = "mystringy";
    sprintf(command,"echo \"something with a string %s\" ", stringz);
    system(command);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

为什么是输出

something with a string 8?
Run Code Online (Sandbox Code Playgroud)

而不是预期的

something with a string mystringy
Run Code Online (Sandbox Code Playgroud)

一个愚蠢的问题,但我无法找到答案.

c++ string printf variadic-functions stdstring

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

将 char 转换为 bool(将 bool 传递给 main)

是否有推荐/正确/更安全的方法将 bool 参数传递给您的主函数?

这是

$ ./my_software true
Run Code Online (Sandbox Code Playgroud)

与此为my_software

int main(argc, argv* []){

    bool my_bool = argv[1];

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

和这个

$ ./my_software 1
Run Code Online (Sandbox Code Playgroud)

与此为my_software

int main(argc, argv* []){

    bool my_bool = atoi(argv[1]);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

相等的?我错过了第一个转换吗?

c++ program-entry-point boolean

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

C++默认构造函数缺席,我无法编译

我有这个非常简单的课程

class myclass {

public:
    int id;
    double x, y, z;

    myclass() = default; // If I omit this line I get an error
    myclass(int ID, double X, double Y, double Z): id(ID), x(X), y(Y), z(Z) {};
};
Run Code Online (Sandbox Code Playgroud)

如果我省略了该行的行myclass() = default;,然后尝试创建一个对象

#include <vector>
using namespace std;
int main() {

    int ID = 0;
    double X = 1.0, Y = 2.0, Z = 3.0;
    vector<myclass> a_vector(10);

    myclass an_object(ID,X,Y,Z);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误no matching function for call to ‘myclass::myclass() …

c++ default-constructor

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