在这段代码中,我用 to 的字母alpha
填充向量:'a'
'z'
std::vector<char> alpha(26);
std::iota(alpha.begin(), alpha.end(), 'a');
我假设这不适用于所有字符编码,有人可以确认吗?还是否认?
如果前者是真的,还有其他可靠的选择吗?
std::iota的行为非常简单:
[first, last)
用顺序增加的值填充范围,从 开始value
并重复评估++value
。
这意味着您的代码仅在编码表示字符时才能工作'a'
,'b'
...'z'
以递增的顺序。ASCII 编码就是这种情况,因此您的代码将在这种情况下工作。'a'
对于任何其他编码,这些字符没有增加,或者在and之间穿插其他字符'z'
,这将不起作用。