Я довольно новый с C++, так что несите меня. Я пытаюсь быстро прочитать файл в 2D-векторе.Попытка прочитать строку в многомерном векторе
При компиляции я получаю ошибку no matching function for call to 'std::basic_ifstream::read(std::basic_string&, char&)'
. Я попробовал перебросить его с помощью реинтерпрета, но это тоже не сработало.
std::vector< std::vector<std::string> > data(ROWS, std::vector<std::string>(COLUMNS));
...
reader.read(data[row][column], strlen); <-- compilation chokes here
Я читаю файл в двоичном режиме, поэтому я не уверен, что я могу использовать >>
, потому что я думаю, что он возвращает форматированный вывод.
вобще 'читатель >> данные [строка] [столбец];' – David
FYI чтение файла «очень быстро» в C++ означает чтение его сразу и затем разбор его в памяти. – David
Также * очень быстро * может означать такие вещи, как ограничение количества выделений памяти, использование непрерывной памяти ... (т. Е. 'Std :: vector' и map '(row, col) -> index'). Формат ввода не описан, но если вы хотите, чтобы он действительно быстро, вы можете избежать iostreams, прочитать файл в блоках и интерпретировать данные вручную ... затем снова * очень быстро *, вероятно, относительный термин здесь. .. –