C ++。读取符号线到char数组/向量的最快方式

时间:2015-02-10 12:14:42

标签: c++ arrays string vector char

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

2 个答案:

答案 0 :(得分:4)

我建议从std::getline开始。它易于使用且难以滥用。

掌握它之后,您可以对其进行基准测试,看看能否做得更快。

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

答案 1 :(得分:1)

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

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