【发布时间】:2021-11-18 22:31:38
【问题描述】:
在 Linux 上使用 C++ 我正在解析(对于基于多重分隔符的单词)通过标准输入提供的大输入(没有其他方式)。
我使用 std::getline 读取 stdinput,然后使用以下伪代码解析该行。
for (std::string single_line; std::getline(std::cin, single_line);)
{
std::string single_word;
for (auto single_charecter : single_line)
{
//do parsing based on a delimiter and
// create a word
}
}
我的问题是关于我使用 std::getline 然后一次解析一行一个字符的效率。
这不能通过其他函数调用或包括使用线程的方法来改进吗?
【问题讨论】:
-
这能回答你的问题吗? How do I iterate over the words of a string?
-
@zerocukor287 不幸的是,这不是。花药特别要求一个解决方案是“请优先考虑优雅而不是效率”
-
关于性能,没有任何理论可以超越三个规则:测量、测量和测量。
-
@MatG 我不能同意更多,希望有一些启发。
-
@p3t3 少数之一是最小化动态内存分配,其余变量太多:编译器、编译器版本、编译器标志、stdlib 实现、操作系统、操作系统版本、硬件……跨度>
标签: c++ linux time-complexity