使用向量排序百分比增益/损失

时间:2013-09-29 18:19:43

标签: c++

大家好,我正在写一个股票市场的程序,我从文件中读取并按符号和百分比收益/损失排序。我已完成符号排序,但无法确定增益损失百分比。基本上我被指示使用矢量。我们需要生成按增益/损失百分比排序的列表,我需要按此组件对库存清单进行排序。但是,我不是按组件百分比获得/损失对列表进行物理排序;而是提供关于该组件的逻辑排序。所以基本上我添加了一个数据成员,一个向量来保存由组件百分比增益/损失排序的股票列表的索引。我把它称为数组indexByGain。因此,当我打印按百分比增益/损失排序的列表时,我使用数组indexByGain来打印列表。我的问题是如果有人可以帮助我解释如何解决它或者解释他们使用数组做的示例代码将如何开始我需要帮助将是非常有帮助的。下面是一个示例代码排序百分比增益/损失:

/* Name: stock_sort() */

 /* Purpose: Sort stocks (stockListType) by percent gained or loss, ascending order */

 /* Parameters: None */

/* Preconditions: list of stocks should be created and initialized as well as       
    sortIndicesGainLoss array */

 /* Postconditions: sortIndicesGainLoss holds the indices of stockList sorted 
    by  gain/loss */

    void stockListType::stock_sort() {

      int i, j;

       int min;

       int temp1, temp2;


        for(i = 0; i < length; i++)

         sortIndicesGainLoss[i] = i;

          for(i = 0; i < length; i++)

          {

               min = i;

               for(j = i + 1; j < length; ++j)

         if(list[sortIndicesGainLoss[min]].percent_gain()>list[sortIndicesGainLoss[j]].percent_gain())

                       min = j;
                   temp1 = sortIndicesGainLoss[i];

                 sortIndicesGainLoss[i] = sortIndicesGainLoss[min];

                     sortIndicesGainLoss[min] = temp1;

                }

                     }

你如何使用矢量来解决这个问题。我真的很难尝试使用向量来理清股票,因为我很困惑如何去做。如果有人可以帮助我,我会很感激。感谢

1 个答案:

答案 0 :(得分:1)

您不需要自己实施选择排序。您可以使用std::sort()

#include <algorithm>
typedef int PERCENTGAINLOSS;
struct STOCK
{
    PERCENTGAINLOSS PercentGainLoss;
    // ...
};
bool operator < (STOCK& a, STOCK& b) {return (a.PercentGainLoss < b.PercentGainLoss);}

// ...

std::vector<STOCK> vector_var;
// Add elements to vector_var
std::sort(vector_var.begin(), vector_var.end());