从向量C ++中查找最高和最低元素的索引

时间:2016-10-04 19:29:45

标签: c++

我知道这些问题已被解决,但我必须在某些限制下执行这些问题。我是C ++的新手,我只是做一些练习以适应新语言。

首先,我有vector<int> pricelist{12,32,43,23,54}元素值和元素数量,无关紧要,因为它会根据测试而改变。它位于 Test.cpp 中,它将检查是否符合要求。因此,在这种情况下,测试会检查是否price.getlowestPrice == 0price.gethighestPrice == 4

我有需要使用的头文件,其中的代码包含,

class Prices{
protected:
    int highestPrice;
    int lowestPrice;

public:

Trade(const int highPriceIn, const int lowPriceIn)
    : highestPrice(highPriceIn), lowestPrice(lowPriceIn) {
}

int getllowestPrice() const {
    return lowestPrice;
}

int gethighestPrice() const {
    return highestPrice;
   }

 };

我显然非常无能(你很快就会看到)关于c ++的语法(或者我一般编码)我尝试创建一个方法来查找min和max并返回索引但是我不知道正确的方式(没有添加回报,因为我不知道要返回什么)。

int lowNhightPrices(vector<int> prices) {
int min, max;
    max = min = 0;
    int currentState;
    for (int i = 0; i < prices.size(); ++i) {

        {
            if (prices[i] < prices[min])
            {
                min = i;
            }
            else if (prices[i] > prices[max])
            {
                max = i;
            }

1 个答案:

答案 0 :(得分:0)

lowNhightPrices可以返回最小值和最大值的索引,也可以返回最小值和最大值。无论哪种方式,您都可以使用std::pair<int, int>作为返回类型。

std::pair<int, int> lowNhightPrices(vector<int> const& prices) {
   ...
   // Return the values.
   // return {minValue, maxValue};

   // Or, return the indices.
   return {minIndex, maxIndex};
}