使用' *'(特殊字符)初始化矢量,然后打印它

时间:2014-11-20 00:00:33

标签: c++ vector

我想初始化一个带有特殊字符的向量,然后将其打印

这是我使用的代码

#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 << ' ';
}

我知道我错过了一些东西,但却无法弄清楚是什么。 我会很感激一些建议

3 个答案:

答案 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, '*');

请参阅http://en.cppreference.com/w/cpp/container/vector/vector