草庐IT

二维码

全部标签

c++ - 带二维数组的 Dijkstra 算法

在过去的几天里,我一直在尝试实现这个算法。到目前为止,我已经设法制作了一个动态二维数组并插入节点之间的距离,一个删除节点之间路径的函数和一个告诉我两个节点之间是否存在路径的函数。现在我想实现一个返回从节点A到节点B的最短路径的函数。我知道dijkstras算法是如何工作的,我已经阅读了wiki上的伪代码,但我自己无法编写任何代码。我真的被困在这里了。我一直在考虑代码应该是什么样子以及应该发生什么,这就是为什么我制作了一个函数来告诉我两个节点之间是否有路径。我是否需要更多的帮助功能来简化dijkstras的实现?目前我只有3个节点,但我想编写的代码通常需要在n个节点上工作。感谢任何形式的

c++ - C++中的二维 bool 数组初始化

我不太使用C,最近我对二维数组初始化问题感到困惑。我需要调试某人的代码并卡在以下(她的原始代码)中:constintlocation_num=10000;bool**location_matrix;if(node_locations){location_matrix=(bool**)malloc(location_num*sizeof(bool*));if(!location_matrix){cout我认为这是多余的,所以我将其更改为以下内容:location_matrix[location_num][location_num]={{false}};但是,段错误会在运行时发生。我的问题

c++ - 传递具有可变维度的二维数组作为函数参数

我刚刚在codechef的成功提交中看到了如下代码。http://www.codechef.com/viewplaintext/1595846我曾经以为floatmax(intn,intarr[n][n]){....}在C++中是不允许的(因为'n'是一个变量)。我的CodeBlocks(在Windows上)与MinGW[gcc4.4]给出了编译时错误。那个“错误:数组绑定(bind)不是整数常量。那么这样的解决方案如何才能被CodeChef的评判所接受。是否有任何特殊标志允许我们在C++中执行此操作???编辑:显示状态为AC(已接受)的链接:http://www.codechef.c

c++ - 在 C++ 中查找二维数组极值点的最佳方法?

我正在寻找一种在C++中查找二维整数数组的最大值和最小值的方法。我知道std::max_element()和std::min_element(),但它们似乎只适用于一维数组。二维数组可以通过以下方式声明和初始化:inttemp[5][5];for(intx=0;x一个简单的方法可能是做这样的事情:intmin=high_number;intmax=low_number;for(intx=0;xmax){max=temp[x][y];}}}但这看起来不是很优化。有谁能提供一些建议或提出更好的想法吗? 最佳答案 您仍然可以像这样使用st

c++ - 运算符重载 [][] 二维数组 C++

我有一个二维数组,我想定义一个函数来返回用户使用运算符重载给我的索引值。换句话说:voidMyMatrix::ReturnValue(){introw=0,col=0;cout操作((*this).matrix)[row][col]应该返回一个int。我不知道如何构建operator[][]。或者,我可以连接对operator[]的几个调用,但我没有成功,因为对该operaror的第一次调用将返回int*并且第二个将返回int,它会强制构建另一个运算符,我不想那样做。数据矩阵定义如下int**matrix;matrix=newint*[row];if(matrix==NULL){cou

c++ - 如何将二维数组传递给C++中的函数

我正在尝试将数组(2d)作为参数传递给函数。我有一个代码如下:intmain(){floatT[100][100];voidset_T(floatT[][]);}voidset_T(floatT1[][]){for(inti=0;i我不确定如何将数组传递给函数...我遇到了很多错误。任何人都可以帮忙吗。 最佳答案 这里有两个问题:C不支持二维数组,只支持数组的数组或指向数组的指针的数组,两者都与二维数组完全不同C不允许将数组作为参数传递给函数,只允许将指针传递给数组(通常,您使用指向数组第0个元素的指针,因为数组的名称最终就是这样,

LeetCode hot100 240 搜索二维矩阵

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例1:输入:matrix=[[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]],target=5输出:true示例2:输入:matrix=[[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]],target=20输出:false提

c++ - C++ 中的二维离散拉普拉斯算子 (del2)

我想弄清楚如何将matlab中的del2()函数移植到C++。我有几个我正在使用的掩码,它们是1和0,所以我写了像他的代码:for(size_ti=1;i计算拉普拉斯算子的内点。我认为根据matlab中“docdel2”中的一些信息,边界条件只是使用可用信息来计算,对吗?所以我想我只需要为i,j=0和nmax处的边界条件编写案例但是,我认为我在此处发布的代码中的这些值对于内部点是正确的,但似乎del2结果不同!我仔细研究了del2源代码,我想我还不够精通matlab,无法弄清楚内部计算的一些代码是怎么回事 最佳答案 您可以通过edi

c++ - 如何将二维数组相互分配?

组件我有一个字符串,例如字符block[4][256]="";我有一句话charsentence[256]="Bobwalkedhisdog";我还有一个迭代器变量intpos=0;我正在努力实现的目标我正在尝试将数组sentence中的每个单词按顺序分配到二维block数组block中。例如,假设我有这段代码(我自己写的-没有按我的计划工作)for(intx=0;x我怎么看我通过处理这个问题来看待它的方式是,我需要先扫描句子,直到遇到一个空格''字符,一个空白。遇到这种情况后,我必须重新扫描句子并开始将所有字符添加到该空格''的位置到我的block数组block[y][z]的第一段中

c++ - 引用二维 vector 中的元素 (c++)

我在粒子系统中有一个名为Spring的类。构造函数如下所示:Spring(Particle&_a,Particle&_b);我有一个粒子vector,我使用SpringmySpring=Spring(myParticles.at(j),myParticles.at(j+1));在循环内添加两个粒子之间的Spring力。到目前为止一切正常。但是,我想使用粒子的二维vector。即:SpringmySpring=Spring(myParticles.at(i).at(j),myParticles.at(i).at(j+1));而且我没有得到对粒子的引用。在第一个示例中,每当我更改sprin