#pragma once #include #include #include #include namespace tls { using Weight = float; using Value = int; using Index = int; using Size = int; struct DiEgo { public: Index *kusochki; Size size_kusochki; void strock(tls::Index origin); DiEgo() { kusochki = nullptr; size_kusochki = 0; } // ~DiEgo() { // delete[] kusochki; // // delete this; // } }; } void tls::DiEgo::strock(tls::Index origin) { std::string input; // Очищаем буфер от возможных остатков std::cin.clear(); // Читаем всю строку std::cout << "Enter links for Node " << origin << ": "; std::getchar(); // Проглотим символ новой строки std::cin >> std::noskipws; // Отключаем пропуск пробелов // Читаем символы до символа новой строки char ch; while (std::cin.get(ch) && ch != '\n') { input += ch; } //Подсчет количества чисел в строке size_kusochki = 0; for (char c : input) { if (c == ' ') size_kusochki++; } size_kusochki++; // Добавляем 1, так как после последнего числа нет пробела if (size_kusochki == 0) return; //выход из рекурсии kusochki = new int[size_kusochki]; // Разбиваем строку и записываем числа в массив int i = 0; char* token = strtok(const_cast(input.c_str()), " "); while (token) { kusochki[i++] = std::stoi(std::string(token)); token = strtok(NULL, " "); } }