我试图在C++中找到向量的最小元素.我希望返回最低元素的值和向量中索引的位置.这是我尝试过的,
auto minIt = std::min_element(vec.begin(), vec.end());
auto minElement = *minIt;
std::cout << "\nMinIT " << &minIt << " while minElement is " << minElement << "\n";
Run Code Online (Sandbox Code Playgroud)
这将返回以下内容,
MinIT 8152610 while minElement is 8152610
Run Code Online (Sandbox Code Playgroud)
如何获得vec(i)的索引i,其中该值为?
下面是我的四阶Runge-Kutta算法,用于求解一阶ODE。我对照此处找到的Wikipedia示例进行检查以解决:
\frac{dx}{dt} = tan(x) + 1
Run Code Online (Sandbox Code Playgroud)
不幸的是一点点。我玩了很长时间,但找不到错误。答案应该是t = 1.1和x = 1.33786352224364362。以下代码给出了t = 1.1和x = 1.42223。
/*
This code is a 1D classical Runge-Kutta method. Compare to the Wikipedia page.
*/
#include <math.h>
#include <iostream>
#include <iomanip>
double x,t,K,K1,K2,K3,K4;
const double sixth = 1.0 / 6.0;
static double dx_dt(double t, double x){
return tan(x) + 1;
}
int main(int argc, const char * argv[]) {
/*======================================================================*/
/*===================== Runge-Kutta Method for ODE =====================*/
/*======================================================================*/
double t_initial = 1.0;// initial time …Run Code Online (Sandbox Code Playgroud)