我想初始化一个带有特殊字符的向量,然后将其打印
这是我使用的代码
#include <vector>
using namespace std;
int main()
{
std::vector<char> p { *,*,*,*,*,*,* };
for( std::vector<char>::const_iterator i = p.begin(); i != p.end(); ++i)
std::cout << *i << ' ';
}
我知道我错过了一些东西,但却无法弄清楚是什么。 我会很感激一些建议
答案 0 :(得分:8)
std::vector<char> p(7, '*');
对我来说是最自然的。
还有
std::fill_n(back_inserter(p), 7, '*');
答案 1 :(得分:1)
@ sehe优秀答案的替代方案是使用string
代替vector
:
std::string p = "*******";
如果可能的话,我还会使用基于范围的for循环:
for (auto ch : p)
std::cout << ch << ' ';
如果你不能使用它,我通常更喜欢std::copy
,例如:
std::copy(p.begin(), p.end(), std::ostream_iterator<char>(std::cout, " "));
答案 2 :(得分:0)
您可以使用带有初始化列表的版本:
std::vector<char> p { '*','*','*','*','*','*','*' };
或者,您可以使用构造函数:
std::vector<char> p(7, '*');