【发布时间】:2012-10-26 16:21:18
【问题描述】:
我有一个函数可以对任意长度字符串中的 128 位数据块进行操作。如果字符串不能均匀地分割成 128 位的块,则会被相应地填充。
目的是转换输入函数的字符串中的数据。
我最初想到的是循环遍历字符串 a 这样的:
//This might have stupid errors. Hopefully it stillg gets the point across.
for (int i = 0; i < strn.size(); i += 16)
{
string block = strn.substr(i, i + 15);
strn.replace(i, i + 15, block);
}
我想这会起作用,但我认为必须有一种更优雅的方式来做到这一点。想到的一个想法是将strn 封装在一个类中并实现我自己的迭代器,该迭代器可以以128 位块的形式读取其内容。这很吸引人,因为构造函数可以处理填充,并且我当前使用的一些函数可以设为私有,从而避免潜在的误用。这看起来是一种富有成效的方法吗?如果是这样,如何实现他自己的迭代器?非常欢迎详细解释,因为我对 C++ 非常缺乏经验。
还有其他可能更好的方法吗?
谢谢!
【问题讨论】: