Я читаю полный файл в строку. Это очень быстро. (Пример файла 180Mb - 2s) Затем я извлекаю некоторые значения из строки с помощью >> оператора и создаю из нее несколько массивов и вставляем массивы в структуру и добавляем каждую структуру в вектор.Быстрое преобразование данных из текстового файла
Я пытаюсь найти узкое место, потому что это очень медленно (но, возможно, вы не можете сделать что-нибудь)
является >> подход быстро?
string str; // gets filled with the file struct A; std::vector<A> b; // global variables // in the function inside the loop str >> a.val A a; b.push_back(a);
Имеет ли вектор право собственности на a или он делает копию? Все еще в стеке? У меня около 60.000 структур, которые вставляют в вектор. Это быстрый подход или есть лучший.
'std :: vector' берет копию' a'. Вы можете избежать этого, используя 'std :: vector :: emplace'. – 101010
В принципе, ваш код в порядке! В противном случае ваш вопрос слишком широк, извините! Обратитесь к доступным [C++ ссылкам] (http://en.cppreference.com). –