使用std::generate_n用字母字符填充矢量

Fill a vector with alphabet chars using std::generate_n

本文关键字:字符 填充 std generate 使用      更新时间:2023-10-16

我想用字母表中的字母填充一个向量。所以我写了如下内容:

#include <iostream>
#include <algorithm>
#include <vector>
#include <iterator>
char i='a';
char f(){return i++;};
int main()
{
  std::vector<char> lol(24);
  std::generate_n(lol.begin(),lol.size(),f);
  std::copy(lol.begin(),lol.end(),std::ostream_iterator<int>(std::cout,","));
}

但是std::copy打印97,98,99...字母的ASCII码。我该如何解决这个问题?

您的ostream_iterator是<int>而不是<char> -尝试将其更改为<char>

将模板专门化更改为char: std::copy(lol.begin(),lol.end(),std::ostream_iterator<char>(std::cout,","));