|
|
1
2
您的分配方法是有效的,测量总长度并只分配一次。但是连接循环会重复测量输出缓冲区从开始到连接的长度,从而导致二次运行时。
这是在内存中实际连接的最有效的方法,但最有效的方法是 不连接
stdio被缓冲的全部原因是,您不必在内存中构建任意长度的缓冲区来执行有效的输出;相反,它会自动缓冲到一个固定大小,并在缓冲区已满时刷新。
请注意
如果您编写的是POSIX(或POSIX-ish)系统,而不仅仅是普通C,那么另一种选择是
|
|
2
2
有效率的
然后分配,然后检查错误。
依次复制每个字符串
现在使用
完成后释放资源。
通常,重复的重新分配是最好的避免,但对于小的短字符串,它真的没有什么区别。专注于
big O
. 我的答案是
如果性能很关键,请尝试各种方法并对预期系统进行分析。一台机器上的速度可能在另一台机器上有所不同。通常,最好先编写一个合理清晰的方法。 |
|
|
3
0
最有效的方法可能是不使用任何
|
|
Ben · 统计向量中的单词在字符串中出现的频率 1 年前 |
|
|
bear_525 · 从列中删除中间名和首字母,并保存在单独的列中 1 年前 |
|
|
asdfadf · 为什么具有相同内存值的字符串和整数打印方式不同? 1 年前 |
|
|
user764754 · 防止多行原始字符串文字中出现新行字符 1 年前 |
|
|
Bogaso · 从列表中返回与模式匹配的元素 1 年前 |
|
|
Jasco · 如何使用VBA提取两个相似字符之间的字符串中的单词? 1 年前 |