C++ 如何求向量中元素的最大和最小索引?
我有一个向量中包含数千个值的数据集,如下所示:C++ 如何求向量中元素的最大和最小索引?,c++,vector,indexing,C++,Vector,Indexing,我有一个向量中包含数千个值的数据集,如下所示: 1, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 6, 6, 6, 6, 6 数据的属性: 1) 这些值是从1开始的连续整数 2) 每个值的数目并不总是相同的 目标是: 找到向量中每个值的最小和最大索引。预期结果应为: minimum index: [0, 3,5,9,14,16] maximum index: [2, 4,8,13,15,20] 有人能给我一个简单的解决办法吗? 谢谢以下是解决
1, 1, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 6, 6, 6, 6, 6
数据的属性:
1) 这些值是从1开始的连续整数
2) 每个值的数目并不总是相同的
目标是:
找到向量中每个值的最小和最大索引。预期结果应为:
minimum index: [0, 3,5,9,14,16]
maximum index: [2, 4,8,13,15,20]
有人能给我一个简单的解决办法吗?
谢谢以下是解决您问题的伪代码:
1.创建一张
map@cauchy的地图:一张成对的地图将比需要的更慢、更复杂。将结果转储到stdout实际上比简单的解决方案需要更多的行:
//假设编译器不支持std::vector的初始化列表:
int ai[]={1,1,1,2,2,3,3,3,4,4,4,4,5,5,6,6,6,7};
std::向量值(ai,ai+(sizeof(ai)/sizeof(ai[0]));
向量边界;
int prevValue=值[0]-1;
对于(size_t i=0;i std::cout被否决,因为poster想要整个解决方案,但没有做任何工作。
IF yes:
then update the second value with current index.
else
update the first value with current index.