В принципе, мне нужно прочитать текстовый файл и вставить их в ascending order
в список.Как сортировать целые числа и помещать их в список
Текстовой файл,
4 1 9 11 0 15 23 2 7 8 17 21.
и мне нужно, чтобы поместить их в список как
Проблема говорит,
Вставьте первый элемент в пустой список. // Какой будет 4
Для каждого последующего элемента:
If it is smaller than the first item, insert it at position 0.
Otherwise, scan the list from the beginning, looking for the first
item whose value is greater than the current value, and insert
the new item before that one.
Мне кажется, мне нужно сортировать их по сравнению, но я не могу придумать четкую идею. Вы можете мне помочь ?
(Потому что профессор использует свой собственный IList.h
и IList.cpp
файл, все функции я могу использовать это вставить и удалить.)
=================== ================================================== ====
То, что я попытался было,
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char* argv[])
{
ifstream inf(argv[1]);
IList t;
int i1;
int i2;
int i3;
int i4;
int i5;
int i6;
int i7;
int i8;
int i9;
int i10;
int i11;
int i12;
//It is reading each integers from the text file and name it i1, i2, i3..
// The text file is..
// 4 1 9 11 0 15 23 2 7 8 17 21.
// i1 is going to be 4 i1 = 4
inf >> i1 >> i2 >> i3 >> i4 >> i5 >> i6 >> i7 >> i8 >> i9 >> i10 >> i11
>> i12;
//I inserted the first value which is 4
t.insert(i1, 0);
// comparison will start from here..
// when i2 is smaller than i1, we are putting them on the left.
if ((i2 < i1))
{
t.insert(i2, 0);
}
// when i2 is greater than i1, we are putting them on the right.
if ((i2 > i1))
{
t.insert(i2, 1);
}
Использование массива ('зЬй :: array', или даже массив C) будет решать * все * ваши проблемы :) – Rakete1111
[Или использовать' зЬй :: list'] (http://en.cppreference.com/w/cpp/container/list), как рекомендуют инструкции. – user4581301
Любые конкретные причины использования списка? Вы должны получить все, что хотите бесплатно, используя 'std :: set' –
cplusplusrat