以下は長い文字列に対して非常に遅いです:
std::string s = "long string";
K klist = DBVec::CreateList(KG , s.length());
for (int i=0; i<s.length(); i++)
{
kG(klist)[i]=s.c_str()[i];
}
100k までの文字列では十分高速 (100 ミリ秒未満) に動作しますが、数百万文字の文字列では低速 (数十分、場合によっては数時間) になります。それ以外kG
に非線形性を生み出すものはないと思います。アクセサー関数が一定時間ではない理由はわかりませkG
んが、このループには他に何もありません。kG
残念ながら、ドキュメントが不足しているため、どのように機能するかはわかりません。
質問: std::string としてバイナリ データのブロブが与えられた場合、バイト リストを作成する効率的な方法は何ですか?