-15에서 -15 사이의 값을 갖는 큰 행렬이 있습니다. 아래 함수를 사용하여 텍스트 파일에 쓰고 싶습니다. 쓰기 속도는 약 0.1MB/s 인 것으로 보이므로 어떤 결과없이 더 빠르게 만들 수 있는지 알아보기 위해 약간 놀았습니다. 어떻게하면 더 빨리 만들 수 있습니까? 당신이 코멘트에서 촬영C++에서 텍스트 파일을 빨리 쓰십시오.
bool mymap::write_one_mat(string txtfile, matrix& mat)
{
ofstream myfile (txtfile, ios::app|ios::binary);
int element;
if (myfile.is_open())
{
int rows = mat.get_rows();
int cols = mat.get_cols();
myfile << "<";
for(int i = 1; i <= rows; ++i)
{
for(int j = 1; j <= cols; ++j)
{
element = mat.get_element(i,j);
if(element < 0 || element > 9)
{
myfile << to_string(element);
}
else
{
myfile << " ";
myfile << to_string(element);
}
}
}
myfile << ">\n";
myfile.close();
return true;
}
else
return false;
}
여기서 'to_string'을 사용하는 이유는 오버로드 된 스트림 연산자가 변환을 처리하고 아마도 불필요한 할당을 처리하지 않기 때문입니다. –
이 질문은 코드 검토이기 때문에 주제가 아닌 것처럼 보입니다. – 0x499602D2
두 브랜치 아래 두 번에'myfile << to_string (element);를 쓸 필요는 없습니다. 'myfile << "";을 써야만하며,'else' 브랜치는 필요 없습니다. – 0x499602D2