使用iterator c ++打印矢量

ele*_*bdc -3 c++ iterator

我想使用迭代器打印一个向量:

#include <vector>
#include <istream>
#include <iostream>
#include <sstream>
#include <stdlib.h>
#include <math.h>
using namespace std;

typedef vector<int> board;
typedef vector<int> moves;


int sizeb;
board start;
moves nmoves;
istringstream stin;


board readIn(std :: istream& in ) {
    int val;
    while (in >> val)
    start.push_back(val);

    sizeb = start[0];
    return start;
}


void printboard(board n) {
    int sizem = sizeb*sizeb;
    int i = 1;

    for (vector<int>::iterator it = start.begin() ; it != start.end(); ++it) {
        for (int j = 0; j < sizeb; ++j)
            cout <<  "\t" << it;
        cout << endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

error: invalid operands to binary expression
  ('basic_ostream<char, std::__1::char_traits<char> >' and
  'vector<int>::iterator' (aka '__wrap_iter<pointer>'))
                    cout <<  "\t" << it;
Run Code Online (Sandbox Code Playgroud)

你可以帮帮我吗?

我想我正在转换我在int类型中收到的字符串.也许我没有以正确的方式使用迭代器(我认为这是问题所在,但我真的不知道)

提前致谢.

Lær*_*rne 8

如果你想int在矢量中打印s,我猜你想要使用:

for (vector<int>::iterator it = start.begin() ; it != start.end(); ++it)
    cout << "\t" << *it;
Run Code Online (Sandbox Code Playgroud)

注意我*用来将迭代器更改it为它当前迭代的值.我不明白你试图用循环结束什么j,所以我放弃了它.