c++ - 选择排序循环中的错误

标签 c++ string sorting vector selection-sort

我需要制作一个程序来接受数字输入文件(integer.txt),每行将一个数字排序到一个 vector 中,然后使用选择排序算法对数字进行降序排序并写入它们到输出文件 (sorted.txt)。我很确定我的 selectionSort() 函数有问题导致循环无法获得正确的值,因为在用 cout 测试后我得到了非常不正确的输出。我敢肯定这是初学者的错误。

vector<string> getNumbers()
{
vector<string> numberList;
ifstream inputFile ("integer.txt");
string pushToVector;
while (inputFile >> pushToVector)
    {
    numberList.push_back(pushToVector);
    }
return numberList;
}



vector<string> selectionSort()
{
vector<string> showNumbers = getNumbers();
int vectorMax = showNumbers.size();
int vectorRange = (showNumbers.size() - 1);
int i, j, iMin;
for (j = 0; j < vectorMax; j++)
    {
    iMin = j;
    for( i = j; i < vectorMax; i++)
        {
        if(showNumbers[i] < showNumbers[iMin])
            {
            iMin = i;
            }
        }
    if (iMin != j)
        {
        showNumbers[j] = showNumbers [iMin];
        }
    }
return showNumbers;
}

void vectorToFile()
{
vector<string> sortedVector = selectionSort();

int vectorSize = sortedVector.size();
ofstream writeTo;
writeTo.open("sorted.txt");
int i = 0;
while (writeTo.is_open())
    {
    while (i < vectorSize)
        {
        writeTo << sortedVector[i] << endl;
        i += 1;
        }
    writeTo.close();
    }
return;
}

int main()
    {
    vectorToFile();
    }

最佳答案

vectorRange 已定义但未使用。

关于c++ - 选择排序循环中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19530908/

相关文章:

sorting - pymongo sort() limit() 不同吗?

c++ - 将 Bimap boost 为 insert_or_modify

c++ - 将投影转换为正交光线转换

c++ - 对多个类使用一个 SDL2 渲染器

c - 在函数中反转字符串并在 main 中打印它

c++ - 冒泡排序比较和交换的总数

c++ - 如何动态转换模板类

c - 反转字符串并计算在 C 中反转的字符数

mysql - 如何将两个单独的文本连接到一个 - 从字符串中选择 - IN MySQL

java - 在java中按升序对csv文件中的一列数据进行排序