C++ 如何在向量的开始处添加新行

C++ 如何在向量的开始处添加新行,c++,vector,C++,Vector,我想在向量向量的开头添加一个新行。我有一个3x3向量,我想要一个4x3。这是我的代码: typedef vector<int> state; typedef vector<vector<int> > board; int val; string s; while (getline (in, s)) { istringstream iss (s); while (iss >> val) boards.push_b

我想在向量向量的开头添加一个新行。我有一个3x3向量,我想要一个4x3。这是我的代码:

typedef vector<int> state;
typedef vector<vector<int> > board;

int val;
string s;

while (getline (in, s)) {
    istringstream iss (s);

    while (iss >> val)
        boards.push_back(val);
}

sizeb = boards.front();

for (auto it = boards.cbegin()+1; it <= boards.cbegin()+pow(sizeb, 2); ++it)
    sstart.push_back(*it);

start.resize(sizeb); 

for (int i = 0; i < sizeb; ++i)
    start[i].resize(sizeb);

for (int i = 0; i < sizeb; i++)
    for (int j = 0; j < sizeb; j++)
        start[i][j] = sstart[(i * sizeb) + j];
typedef向量状态;
typedef矢量板;
int-val;
字符串s;
while(getline(in,s)){
istringstream iss(s);
while(iss>>val)
板。推回(val);
}
sizeb=boards.front();
对于(auto it=boards.cbegin()+1;it
如何在向量的开始处添加新行

您可以使用
std::vector::insert
实现这一点

当我尝试执行sizeb+1时,它会添加一个新行,但也会添加一个新列

这是因为使用循环调整每一行的大小:

// I'm assuming that start is the vector of vectors

start.resize(sizeb); // this changes the number of rows

for (int i = 0; i < sizeb; ++i)
    start[i].resize(sizeb); // these change the number of columns in each row
//我假设start是向量的向量
start.resize(sizeb);//这会更改行数
对于(int i=0;i为什么不使用<代码> vector?插入()/<代码>来插入新的行?在代码的中间有一个裸露的代码>矢量< /代码>。它不编译。是的,这是一个错误。忽略它。哈哈哈,你确实写了代码来给每一行添加一个新的列。不确定你所期望的。我收到了一个。“错误:没有可行的重载“=”错误。@Elena好的。您的代码有问题。@Elena正如错误所述,没有可行的重载“=”。我不是假装粗鲁,但我可以自己在编译器中读取错误。