C++ C++;rand()函数在MPI上不起作用

C++ C++;rand()函数在MPI上不起作用,c++,random,C++,Random,我这里的情况很有趣 我已经包含了库#include,它应该允许我使用rand() 同时,我使用了两种不同的解决方案,一种是使用std::rand(),另一种是使用rand(),在这两种情况下,我都在程序顶部使用命名空间std声明 但我还是犯了这个错误: 无法解析变量“rand” 这是我的代码: void makeAB() { for (i = 0; i < NUM_ROWS_A; i++) { for (j = 0; j < NUM_COLUMNS_A; j+

我这里的情况很有趣

我已经包含了库
#include
,它应该允许我使用
rand()

同时,我使用了两种不同的解决方案,一种是使用
std::rand()
,另一种是使用
rand()
,在这两种情况下,我都在程序顶部使用命名空间std声明

但我还是犯了这个错误:

无法解析变量“rand”

这是我的代码:

void makeAB() {
    for (i = 0; i < NUM_ROWS_A; i++) {
        for (j = 0; j < NUM_COLUMNS_A; j++) {
            int i = std::rand();
            mat_a[i][j] = rand() % 10;//i + j;
        }
    }
}

包括<代码> STDLIB .H./> > > < <代码> STD< /COD> >下,名称空间<代码> RAND (因为它是C报头,不是C++头;它甚至不知道名称空间是什么)。C++包头就是这样做的。如果您想要名称空间
rand
,请使用
#include
,而不是
#include

假定你使用了CYON,你可以用C++扩展名为C++扩展名。重命名文件,使用<代码> .CPP<代码>扩展,或者,在前一个链接上,更改<代码> CMAKLISTIS.TXT < /Cord>文件,使其明确地将<代码> .c>代码>文件的语言设置为C++,改变一条像这样的哈希线:

set_source_files_properties(NAMEOFCFILE.c PROPERTIES COMPILE_FLAGS "-x c++")
(这只是添加了编译器标志,而没有正确地通知CLion它是C++)


这会正确地通知CLion。

如果您使用
cstdlib
会发生什么?与您的问题无关,但是
mat_a
有多大?什么是材料?<代码> NoMyRoSsxa < /Cube >等于或大于?我尝试使用和它,并且它说“代码>未使用的导入语句< /代码>。您得到的消息(“不能解析变量”Rand’和“未使用的导入语句”)对于C++编译器来说没有多大意义。编译代码时是否会出现这些错误?你能试着创造一个新的世界并展示给我们吗?请编辑问题以包含完整的错误输出,最好是将整个生成输出作为文本复制粘贴到问题正文中,而不进行编辑。您使用的是CLion吗?我尝试过使用And,据说
Unused import statement
@Mircea:许多IDE显然错误地使用了这个“Unused import statement”。除了那个警告,它还能起作用吗?也就是说,“未使用的导入语句”是一个奇怪的警告,这不是导入,而是包含。是什么IDE/编译器告诉你的?我已经删除了stdlib,只保留了cstdlib,它仍然没有使用,我有相同的error@Mircea:源文件是否实际使用扩展名
.cpp
命名?显然地但实际上,您需要指定您正在使用的内容。是IDE吗?编译器?什么?@Mircea:那你需要看看你的构建配置。我说不出有什么不对,但克莱恩显然对这类事情很挑剔。代码在
#include
中是正确的,错误的是构建过程/IDE配置。
set_source_files_properties(NAMEOFCFILE.c PROPERTIES COMPILE_FLAGS "-x c++")
set_source_files_properties(NAMEOFCFILE.c PROPERTIES LANGUAGE CXX)