从控制台输入到字符向量或数组中读取一行字符的最快方法是什么(我更喜欢向量,因为行可能很长而且我不熟悉动态数组,因此正常数组可能导致堆栈溢出)。我不知道我的字符行的大小和字符后面(在另一行)有一些数字。我使用了字符串,但我的程序超出了我试图解决的问题的时间限制,因此我认为可能是因为char []在某些操作中比字符串更快。我需要排序我的线,我已经在使用quickSort algorythm了。
答案 0 :(得分:4)
我建议从std::getline
开始。它易于使用且难以滥用。
掌握它之后,您可以对其进行基准测试,看看能否做得更快。
提示:重用您读入的std::string
- 这样就可以避免在每一行上进行内存分配。
答案 1 :(得分:1)
你需要排成一行中的字符吗?如果是,您可以使用固定大小的数组,通过计算单独计数器中的每个字符来消除排序和分配开销?
" cbacbc" - > [1,2,3] - > " abbccc"