C++。将符号行读入 char array/vector 的最快方法

C++. Fastest way of reading line of symbols into char array/vector

从控制台输入读取一行字符到字符向量或数组的最快方法是什么(我更喜欢向量,因为行可能很长而且我不熟悉动态数组,所以普通数组可能会导致堆栈溢出)。我不知道我的字符行的大小,并且在字符之后(在另一行中)有一些数字。我使用了字符串,但我的程序超出了我试图解决的问题的时间限制,因此我认为这可能是因为 char[] 在某些操作中比字符串快。我需要对我的行进行排序,并且我已经在使用快速排序算法。

我建议从 std::getline 开始。它易于使用且不易被误用。

一旦你掌握了它,你就可以对其进行基准测试,看看你是否可以做得更快。

提示:重用您读入的 std::string - 这样可以避免在每一行上分配内存。

您需要对一行中的字符进行排序吗?如果是,您可以使用固定大小的数组并通过在单独的计数器中计算每个字符来消除排序和分配开销吗?

"cbacbc" -> [1,2,3] -> "abbccc"