在处理文本文件时,我总是认为它更高效,首先将内容(或部分内容)读入std :: string或char数组,因为 - 从我有限的理解 - 文件从内存中读取块大于单个字符的大小.但是,我听说现代操作系统通常不会直接从文件中读取,这使得我手动缓冲输入的好处不大.
假设我想确定文本文件中某个字符的编号.以下是否会效率低下?
while (fin.get(ch)) {
if (ch == 'n')
++char_count;
}
Run Code Online (Sandbox Code Playgroud)
当然,我想这取决于文件大小,但是有没有人对什么是最好的方法有任何一般规则?
本质上,我想要一个容器,其中一个元素可以被许多键访问.这可以通过定义一些用作地图键类型的多键类来完成,但由于这样的解决方案不允许修改已经插入的元素的键,我无法为其创建新的别名现有条目.
我很欣赏,std::map
为了订购,密钥需要保持不变,但为什么要存在这种限制std::unordered_map
呢?
如果需要,我想我可以使用指针图,但是有更好,更优雅的解决方案吗?
编辑:谢谢你清除Andrei,Xeo.尼科尔,关于我应该使用什么容器的任何建议?