如何检查以前是否C++找到过最大值位置
How to check if a max value position has previously been found C++
作为更大函数的一部分,我正在迭代二维数组以找到每行中最大值的位置。
pos = std::distance(A_T[k].begin(), std::max_element(A_T[k].begin(), A_T[k].end(),
[](T a, T b) {return (abs(a) < abs(b)); }));
由于我的数组是 2D,因此可以两次接收相同的位置 - 在这种情况下,我想返回下一个最大值的位置。
有没有简单的方法可以做到这一点?
我通过使用Steve Lorrimer提出的解决方案解决了这个问题。
我首先初始化了最大持仓历史的向量。然后,我遍历位置历史向量,将相应的A_T列设置为 0.0。然后,我可以重复搜索下一个最大值,满足我的要求,即同一列不能被选择两次。
这是我的代码:
std::vector<unsigned> posHist;
for (unsigned k = 0; k < A.size(); k++)
{
for (unsigned q = 0; q < posHist.size(); q++)
for (unsigned i = 0; i < A_T.size(); i++)
A_T[i][posHist[q]] = 0.0;
posHist.push_back (std::distance(A_T[k].begin(),
std::max_element(A_T[k].begin(), A_T[k].end(),
[](T a, T b) {return (abs(a) < abs(b)));}));
}
相关文章:
- 将值指定给向量(2D)的向量中的某个位置
- 使用Unreal C++获取VR耳机的世界位置/方向
- 写入位置0x0000000C时发生访问冲突
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- GL_SHADERSTORAGE_BUFFER位置是否与其他着色器位置冲突
- 如何使用cudaMallocManaged在指针位置初始化对象?(C++)
- 无法获取webot::PositionSensor对象中位置传感器的值
- 非常量变量只读位置的赋值
- 如何定义更改car类中car位置的方法
- 使用迭代器时如何访问对象在向量中的位置?
- 更改.cpp程序的输入文件中数据的位置会意外更改输出
- 求最大元素位置的分治算法
- 你好。。。id_public变量不应该给出结果为 81 和 86 吗?为什么它为两个派生类占用不同的内存位置?
- 为什么我的点没有在 OpenGL 中绘制鼠标所在的位置?
- 如何将元素添加到向量的字符串位置
- 如何选择在 csv 文件中输出的位置
- 无法打开 fstream C++文件,即使它与 .cpp 位于同一位置
- 如何在特定位置追加 json 文件
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- OpenGL - 在 NDC 中计算位置适用于着色器,但不适用于'regular'程序