0

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

#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 码。我怎样才能解决这个问题?

4

2 回答 2

2

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

于 2013-05-16T14:11:29.383 回答
1

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

于 2013-05-16T14:10:02.580 回答