전체 파일을 문자열로 읽습니다. 이것은 매우 빠릅니다. (예제 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)를 참조하십시오. –