为了账号安全,请及时绑定邮箱和手机立即绑定

如何打印出向量的内容?

如何打印出向量的内容?

C++
慕桂英546537 2019-07-05 10:04:15
如何打印出向量的内容?我想在C+中打印一个向量的内容,下面是我的如下内容:#include <iostream>#include <fstream>#include <string>#include <cmath>#include <vector> #include <sstream>#include <cstdio>using namespace std;int main(){     ifstream file("maze.txt");     if (file) {         vector<char> vec(istreambuf_iterator<char>(file), (istreambuf_iterator<char>()));         vector<char> path;         int x = 17;         char entrance = vec.at(16);         char firstsquare = vec.at(x);         if (entrance == 'S') {              path.push_back(entrance);          }         for (x = 17; isalpha(firstsquare); x++) {             path.push_back(firstsquare);         }         for (int i = 0; i < path.size(); i++) {             cout << path[i] << " ";         }         cout << endl;         return 0;     }}如何将向量的内容打印到屏幕上?
查看完整描述

3 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

要做到这一点,一个更简单的方法是使用标准复制算法:

#include <iostream>#include <algorithm> // for copy#include <iterator> // for ostream_iterator#include <vector>int main() {
    /* Set up vector to hold chars a-z */
    std::vector<char> path;
    for (int ch = 'a'; ch <= 'z'; ++ch)
        path.push_back(ch);

    /* Print path vector to console */
    std::copy(path.begin(), path.end(), std::ostream_iterator<char>(std::cout, " "));

    return 0;}

ostream_iterator被称为迭代器适配器..对类型进行模板化,以便打印到流(在本例中,char). cout(也称为控制台输出)是我们要写入的流,以及空格字符(" ")是我们希望在存储在向量中的每个元素之间打印的内容。

这个标准算法是强大的,许多其他算法也是如此。标准库给你的力量和灵活性使它如此伟大。想象一下:您可以用代码行。您不必使用分隔符来处理特殊情况。你不需要担心循环。标准图书馆为你做这一切。


查看完整回答
反对 回复 2019-07-05
?
波斯汪

TA贡献1811条经验 获得超4个赞

在C+11中,您现在可以使用基于范围的循环:

for (auto const& c : path)
    std::cout << c << ' ';


查看完整回答
反对 回复 2019-07-05
  • 3 回答
  • 0 关注
  • 862 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信