【C++学习一】

1. int/float转换为string

std::string text_score = std::to_string(scores[i]);

2. 求数组的最大值,最小值及其索引值

例 a[]={1,2,3,4,5,6};

最大值:int maxValue = *max_element(a,a+6); 
最小值:int minValue = *min_element(a,a+6);

最大值下标:int maxPosition = max_element(a,a+6) - a; 
最小值下标:int minPosition = min_element(a,a+6) - a;

---------------------------------------------------
#include<algorithm>

float obj_prob[CLASS_NUM-1];

float max_obj_prob = *std::max_element(obj_prob, obj_prob + 90);
int  max_label = std::max_element(obj_prob, obj_prob + 90) - obj_prob;

    参考链接: c++求数组最大最小元素的值以及索引位置

3. 求vector的最大值,最小值及其索引值

例 vector<int> vec

最大值:int maxValue = *max_element(v.begin(),v.end()); 
最小值:int minValue = *min_element(v.begin(),v.end());

最大值下标:int maxPosition = max_element(v.begin(),v.end()) - v.begin(); 
最小值下标:int minPosition = min_element(v.begin(),v.end()) - v.begin();

-----------------------------------------------------------------------

4. 对vector进行排序,并返回索引值

#include <algorithm>
#include <numeric>

std::vector<float> tmp_max_scores;

std::vector<size_t> max_score_index(tmp_max_scores.size());
std::iota(max_score_index.begin(), max_score_index.end(), 0);
std::sort(max_score_index.begin(), max_score_index.end(), [&tmp_max_scores](size_t a, size_t b) {return (tmp_max_scores[a] > tmp_max_scores[b]);});

for (int i = 0 ; i != max_score_index.size() ; i++) 
{
    std::cout << max_score_index[i] << ",";
}

    参考链接: C++ std::vector 保留索引排序

                    c++ ——排序并保留索引

5. 对vector进行排序,并返回索引值                                    

#include <iostream>
#include <algorithm>


std::vector<float> tmp_max_scores;

std::sort(tmp_max_scores.begin(), tmp_max_scores.end(), std::greater<float>());

for (std::vector<float>::iterator it=tmp_max_scores.begin(); it!=tmp_max_scores.end(); ++it)
    std::cout << ' ' << *it;
    std::cout << '\n';

    参考链接: 数组,vector的sort快速降序方法

                     C++中,结构体vector使用sort排序

                     C++ sort排序函数用法                     

6. 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值