使用std :: generate_n填充带字母字符的向量

时间:2013-05-16 14:08:07

标签: c++ stl

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

#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码。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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