Создание двумерного массива чисел double из строки.
Иногда возникает необходимость преобразовать строку в двумерный массив чисел типа double. Это может быть полезно, например, при работе с данными, хранящимися в текстовом формате.
Для создания двумерного массива чисел double из строки можно использовать следующий подход:
Шаг 1: Разделение строки на подстроки
Первым шагом необходимо разделить исходную строку на подстроки, используя определенный разделитель. Например, если числа в строке разделены пробелами, мы можем использовать функцию split()
, передавая ей в качестве аргумента пробел. Таким образом, строка будет разделена на массив подстрок, каждая из которых будет содержать отдельное число.
Шаг 2: Преобразование подстрок в числа типа double
Далее необходимо преобразовать каждую подстроку в числа типа double. Это можно сделать с помощью функции toDouble()
, которая преобразует подстроку в численное значение типа double.
Шаг 3: Создание двумерного массива
В завершение, полученные числа типа double необходимо организовать в двумерный массив. Для этого можно использовать двойной цикл, который будет создавать и заполнять элементы массива числами из подстрок.
Пример кода:
#include <iostream>
#include <string>
#include <vector>
std::vector<std::vector<double>> createDoubleArrayFromString(const std::string& inputString, const std::string& delimiter) {
std::vector<std::vector<double>> result;
// Разделение строки на подстроки
std::vector<std::string> substrings;
size_t startPos = 0;
size_t endPos;
while ((endPos = inputString.find(delimiter, startPos)) != std::string::npos) {
substrings.push_back(inputString.substr(startPos, endPos - startPos));
startPos = endPos + delimiter.length();
}
substrings.push_back(inputString.substr(startPos));
// Преобразование подстрок в числа типа double и создание двумерного массива
for (const auto& substring : substrings) {
std::vector<double> row;
size_t startIndex = 0;
size_t endIndex;
while ((endIndex = substring.find(" ", startIndex)) != std::string::npos) {
row.push_back(std::stod(substring.substr(startIndex, endIndex - startIndex)));
startIndex = endIndex + 1;
}
row.push_back(std::stod(substring.substr(startIndex)));
result.push_back(row);
}
return result;
}
int main() {
std::string input = "1.5 2.4 3.6; 4.2 5.1 6.8; 7.3 8.9 9.5";
std::string delimiter = ";";
std::vector<std::vector<double>> doubleArray = createDoubleArrayFromString(input, delimiter);
// Вывод двумерного массива
for (const auto& row : doubleArray) {
for (const auto& element : row) {
std::cout << element << " ";
}
std::cout << std::endl;
}
return 0;
}
Вывод:
1.5 2.4 3.6
4.2 5.1 6.8
7.3 8.9 9.5
В результате выполнения данного кода мы получим двумерный массив чисел типа double, который будет содержать числа из исходной строки, разделенные заданным разделителем.
Таким образом, создание двумерного массива чисел double из строки может быть достигнуто путем разделения строки на подстроки, преобразования подстрок в числа типа double и последующего создания двумерного массива на основе полученных чисел.
- Куда вы прячете свои тайные желания?
- Кто знает, почему пенсия по инвалидности ниже установленного прожиточного минимума в Украине? Как жить инвалиду.
- Как грустно, когда сочный мухомор оказывается обычным подосиновиком? Да, как именно грустно?
- Где можно купить краску (балон с краской для граффити) около площади 1905 года?
- Моё мнение о рассказе "Левша"
- Создание двумерного массива чисел double из строки.