170 похожих чатов

Всем добрый вечер, решаю одну задачу и хотелось бы спросить

насчёт её реализации. В файле есть N строк, в каждой строке есть следующая информация: день, час, минута, id, статус. Потом с этими данными нужно производить кое-какие действия(в подробности вдаваться не буду, ибо надеюсь, что сам сделаю). Я решил, что удобнее всего мне использовать "вложенные" map(извиняюсь, если не так назвал). Выбрал такой вариант, потому что дни, часы и минуты для каждого id должны быть сортированы. У меня получился следующий код:

std::ifstream work_file("input.txt");

int N;//кол-во записей

std::string line;

std::getline(work_file, line);

N = std::stoi(line);

std::map<int, std::map<int, std::map<int, std::map<int, std::string>>>> id; //id -> day -> hour -> minute -> status
std::map<int, std::map<int, std::map<int, std::string>>> day;
std::map<int, std::map<int, std::string>> hour;
std::map<int, std::string> minute;


while (getline(work_file, line))
{
std::stringstream ss;

std::string value;

std::vector<std::string>nums(5);

while (ss >> value)
{
nums.push_back(value);
}

minute.insert({ std::stoi(nums[2]),nums[4] });
hour.insert({ std::stoi(nums[1]),minute });
day.insert({ std::stoi(nums[0]),hour });
id.insert({ std::stoi(nums[3]),day });

nums.clear();
}

Так вот, такая реализация вообще адекватная, или за такое по рукам бить нужно? И если в ней что-то не так, то какие можете предложить варианты?

2 ответов

24 просмотра

а почему бы просто не сделать класс? class Data { // дай название более говорящее private: int id, hour, minute, day; public: Data(int ...) : id(..),.... {} // в конструкторе значения установи }; Если тебе нужна сортировка, то в класс добавь перегрузку оператора < friend bool operator<(const Data& data1, const Data& data2){ return <тут критерий сортировки> }

Ярослав- Автор вопроса
\--
а почему бы просто не сделать класс? class Data { ...

Хммм, но я пока подумаю, что можно в мапами сделать, если зайду в тупик, то и правда класс сделаю. Спасибо за идею)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта