Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;随机数生成器:尝试将结果作为向量,但通过使用空函数来获得错误 以前我问过如何在C++中制作随机数生成器,在别人的帮助下,我做对了。 现在,我尝试将结果作为向量而不是一系列数字返回,但它似乎不正确。我知道void并不意味着返回任何内容,但是使用double而不是void也不起作用。。 为了提供更多细节,我尝试返回两个名为x\u-coord和y\u-coord的容器,它们包含x\u-coord.push\u-back(oldRoot)和y\u-coord.push\u-back(newRoot)的所有结果。我这样做是因为我需要它们供以后使用。最好的方法是什么?提前谢谢你的帮助 #include <iostream> #include <vector> using namespace std; // Generate random x and y coordinates for 128 particles class Random { public: double oldRoot; double newRoot; int iteNum; Random(double aOldRoot, double aNewRoot, int aIteNum) { oldRoot = aOldRoot; newRoot = aNewRoot; iteNum = aIteNum; } void generate() { vector<double> x_coord; vector<double> y_coord; int count = 0; while (count <= iteNum) { double totalRoot = oldRoot + newRoot; if (totalRoot > 1.0) { oldRoot = newRoot; newRoot = totalRoot - 1.0; x_coord.push_back(oldRoot); y_coord.push_back(newRoot); } else { oldRoot = newRoot; newRoot = totalRoot; x_coord.push_back(oldRoot); y_coord.push_back(newRoot); } count += 1; } return x_coord, y_coord; } }; int main() { Random random10(0.1412, 0.2343, 16); random10.generate(); return 0; } #包括 #包括 使用名称空间std; //为128个粒子生成随机x和y坐标 类随机{ 公众: 重瓣根; 双新根; int-iteNum; 随机(双aOldRoot、双aNewRoot、int aIteNum){ oldRoot=aOldRoot; 新根=无根根; iteNum=aIteNum; } void生成(){ 向量x_坐标; 向量y_坐标; 整数计数=0; 而(计数1.0){ oldRoot=newRoot; newRoot=totalRoot-1.0; x_坐标。推回(oldRoot); y_coord.推回(新根); } 否则{ oldRoot=newRoot; newRoot=totalRoot; x_坐标。推回(oldRoot); y_coord.推回(新根); } 计数+=1; } 返回x_坐标,y_坐标; } }; int main(){ 随机数字10(0.1412,0.2343,16); 随机数10.生成(); 返回0; }_C++ - Fatal编程技术网

C++;随机数生成器:尝试将结果作为向量,但通过使用空函数来获得错误 以前我问过如何在C++中制作随机数生成器,在别人的帮助下,我做对了。 现在,我尝试将结果作为向量而不是一系列数字返回,但它似乎不正确。我知道void并不意味着返回任何内容,但是使用double而不是void也不起作用。。 为了提供更多细节,我尝试返回两个名为x\u-coord和y\u-coord的容器,它们包含x\u-coord.push\u-back(oldRoot)和y\u-coord.push\u-back(newRoot)的所有结果。我这样做是因为我需要它们供以后使用。最好的方法是什么?提前谢谢你的帮助 #include <iostream> #include <vector> using namespace std; // Generate random x and y coordinates for 128 particles class Random { public: double oldRoot; double newRoot; int iteNum; Random(double aOldRoot, double aNewRoot, int aIteNum) { oldRoot = aOldRoot; newRoot = aNewRoot; iteNum = aIteNum; } void generate() { vector<double> x_coord; vector<double> y_coord; int count = 0; while (count <= iteNum) { double totalRoot = oldRoot + newRoot; if (totalRoot > 1.0) { oldRoot = newRoot; newRoot = totalRoot - 1.0; x_coord.push_back(oldRoot); y_coord.push_back(newRoot); } else { oldRoot = newRoot; newRoot = totalRoot; x_coord.push_back(oldRoot); y_coord.push_back(newRoot); } count += 1; } return x_coord, y_coord; } }; int main() { Random random10(0.1412, 0.2343, 16); random10.generate(); return 0; } #包括 #包括 使用名称空间std; //为128个粒子生成随机x和y坐标 类随机{ 公众: 重瓣根; 双新根; int-iteNum; 随机(双aOldRoot、双aNewRoot、int aIteNum){ oldRoot=aOldRoot; 新根=无根根; iteNum=aIteNum; } void生成(){ 向量x_坐标; 向量y_坐标; 整数计数=0; 而(计数1.0){ oldRoot=newRoot; newRoot=totalRoot-1.0; x_坐标。推回(oldRoot); y_coord.推回(新根); } 否则{ oldRoot=newRoot; newRoot=totalRoot; x_坐标。推回(oldRoot); y_coord.推回(新根); } 计数+=1; } 返回x_坐标,y_坐标; } }; int main(){ 随机数字10(0.1412,0.2343,16); 随机数10.生成(); 返回0; }

C++;随机数生成器:尝试将结果作为向量,但通过使用空函数来获得错误 以前我问过如何在C++中制作随机数生成器,在别人的帮助下,我做对了。 现在,我尝试将结果作为向量而不是一系列数字返回,但它似乎不正确。我知道void并不意味着返回任何内容,但是使用double而不是void也不起作用。。 为了提供更多细节,我尝试返回两个名为x\u-coord和y\u-coord的容器,它们包含x\u-coord.push\u-back(oldRoot)和y\u-coord.push\u-back(newRoot)的所有结果。我这样做是因为我需要它们供以后使用。最好的方法是什么?提前谢谢你的帮助 #include <iostream> #include <vector> using namespace std; // Generate random x and y coordinates for 128 particles class Random { public: double oldRoot; double newRoot; int iteNum; Random(double aOldRoot, double aNewRoot, int aIteNum) { oldRoot = aOldRoot; newRoot = aNewRoot; iteNum = aIteNum; } void generate() { vector<double> x_coord; vector<double> y_coord; int count = 0; while (count <= iteNum) { double totalRoot = oldRoot + newRoot; if (totalRoot > 1.0) { oldRoot = newRoot; newRoot = totalRoot - 1.0; x_coord.push_back(oldRoot); y_coord.push_back(newRoot); } else { oldRoot = newRoot; newRoot = totalRoot; x_coord.push_back(oldRoot); y_coord.push_back(newRoot); } count += 1; } return x_coord, y_coord; } }; int main() { Random random10(0.1412, 0.2343, 16); random10.generate(); return 0; } #包括 #包括 使用名称空间std; //为128个粒子生成随机x和y坐标 类随机{ 公众: 重瓣根; 双新根; int-iteNum; 随机(双aOldRoot、双aNewRoot、int aIteNum){ oldRoot=aOldRoot; 新根=无根根; iteNum=aIteNum; } void生成(){ 向量x_坐标; 向量y_坐标; 整数计数=0; 而(计数1.0){ oldRoot=newRoot; newRoot=totalRoot-1.0; x_坐标。推回(oldRoot); y_coord.推回(新根); } 否则{ oldRoot=newRoot; newRoot=totalRoot; x_坐标。推回(oldRoot); y_coord.推回(新根); } 计数+=1; } 返回x_坐标,y_坐标; } }; int main(){ 随机数字10(0.1412,0.2343,16); 随机数10.生成(); 返回0; },c++,C++,一个简单的选项是将2个向量作为std::pair返回,如下所示: std::pair<std::vector<double>, std::vector<double>> generate() { // fill up the vectors return {x_coord, y_coord}; } std::vector<std::pair<double, double>> xy_coord; xy_coord.push_b

一个简单的选项是将2个
向量作为
std::pair
返回,如下所示:

std::pair<std::vector<double>, std::vector<double>> generate() {
  // fill up the vectors
  return {x_coord, y_coord};
}
std::vector<std::pair<double, double>> xy_coord;
xy_coord.push_back({oldRoot, newRoot});
因为
x
y
坐标可能应该成对连接

您可以像这样插入随机生成的数字对:

std::pair<std::vector<double>, std::vector<double>> generate() {
  // fill up the vectors
  return {x_coord, y_coord};
}
std::vector<std::pair<double, double>> xy_coord;
xy_coord.push_back({oldRoot, newRoot});

一个简单的选项是将2
向量作为
std::pair
返回,如下所示:

std::pair<std::vector<double>, std::vector<double>> generate() {
  // fill up the vectors
  return {x_coord, y_coord};
}
std::vector<std::pair<double, double>> xy_coord;
xy_coord.push_back({oldRoot, newRoot});
因为
x
y
坐标可能应该成对连接

您可以像这样插入随机生成的数字对:

std::pair<std::vector<double>, std::vector<double>> generate() {
  // fill up the vectors
  return {x_coord, y_coord};
}
std::vector<std::pair<double, double>> xy_coord;
xy_coord.push_back({oldRoot, newRoot});

出现错误是因为您定义了函数
generate()
的返回类型为
void
,而您是
返回x\u坐标,y\u坐标

要修复它,您必须具有返回类型,如
std::pair
,因为您的
x_坐标
y_坐标
vector
,并且您将它们作为元组同时返回

基本上,你可以这样做:

std::pair<vector<double>, vector<double>> generate() {

        vector<double> x_coord;
        vector<double> y_coord;

        //Put your code here...

        return {x_coord, y_coord};
    }
std::pair generate(){
向量x_坐标;
向量y_坐标;
//把你的代码放在这里。。。
返回{x_-coord,y_-coord};
}

出现错误是因为您定义了函数
generate()
的返回类型为
void
,而您是
返回x\u坐标,y\u坐标

要修复它,您必须具有返回类型,如
std::pair
,因为您的
x_坐标
y_坐标
vector
,并且您将它们作为元组同时返回

基本上,你可以这样做:

std::pair<vector<double>, vector<double>> generate() {

        vector<double> x_coord;
        vector<double> y_coord;

        //Put your code here...

        return {x_coord, y_coord};
    }
std::pair generate(){
向量x_坐标;
向量y_坐标;
//把你的代码放在这里。。。
返回{x_-coord,y_-coord};
}

谢谢你教我关于std::pair的知识!但是,现在我在将void更改为std::pair后运行代码时没有得到任何输出。您知道如何获取x_坐标和y_坐标吗?如果要在执行
generate()
后获取返回的元组,首先应该定义
std::pair v
then
v=random10.generate()
,您可以使用
v.first
获得
x_-coord
,使用
v.second
获得
y_-coord
。感谢您教我有关std::pair的知识!但是,现在我在将void更改为std::pair后运行代码时没有得到任何输出。您知道如何获取x_坐标和y_坐标吗?如果要在执行
generate()
后获取返回的元组,首先应该定义
std::pair v
then
v=random10.generate()
,您可以使用
v.first
获得
x_坐标
,使用
v.second
获得
y_坐标