Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将行插入二维向量(向量的向量) > C++场景比较新。无论如何,我有一个清单:_C++_Vector - Fatal编程技术网

将行插入二维向量(向量的向量) > C++场景比较新。无论如何,我有一个清单:

将行插入二维向量(向量的向量) > C++场景比较新。无论如何,我有一个清单:,c++,vector,C++,Vector,1.56 3.1.2 53447 6.2 7 3 我试图填写缺失的数字(在本例中为2和4)。此列表作为向量的向量输入。那很好。我的功能是在需要的地方插入数字。这是我的代码: #include<iostream> #include<vector> #include<string> #include<fstream> #include<sstream> using namespace std; int main() { vector&l

1.56
3.1.2
53447
6.2
7 3

我试图填写缺失的数字(在本例中为2和4)。此列表作为向量的向量输入。那很好。我的功能是在需要的地方插入数字。这是我的代码:

#include<iostream>
#include<vector>
#include<string>
#include<fstream>
#include<sstream>

using namespace std;

int main()
{
vector< vector<int> > vec1;

vector<int> tempVec;


string str = "";
stringstream ss;
int temp = 0;

ifstream iFile;
//  iFile.open("E:\\COMP 220\\SCC sample input.txt");
iFile.open("E:\\SCC sample input2.txt");


if (iFile.is_open()) //Inputs file
{
    cout << "File is open!\n";

    getline(iFile, str);
    while (!iFile.eof())
    {
        int z = 0;
        stringstream ss(str);
        while (ss >> temp)
        {
            tempVec.push_back(temp);
            cout << tempVec[z] << " ";
            z++;
        }
        vec1.push_back(tempVec);
        cout << endl;
        tempVec.clear();
        getline(iFile, str);
    }
}

int count = 0;
while (count < vec1.size() - 1)
{
    if (vec1[count][0] != vec1[count + 1][0] - 1)
    {
        tempVec.clear();
        tempVec.push_back(vec1[count][0] + 1);
        vec1.insert(count, tempVec);
    }
    else
        count++;
}

return 0;
}
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
int main()
{
向量<向量>向量1;
向量tempVec;
字符串str=“”;
细流ss;
内部温度=0;
IFIFile;
//iFile.open(“E:\\COMP 220\\SCC sample input.txt”);
iFile.open(“E:\\SCC sample input2.txt”);
if(iFile.is_open())//输入文件
{
cout>temp)
{
临时向后推(临时);

因为
count
是一个整数,并且的第一个参数是迭代器,而不是整数,所以不能得到编译器错误

要使用迭代器到达向量中的某个位置,请使用
vector::begin()
迭代器并添加到该位置:

因此:

vec1.insert(count, tempVec);
应该是

vec1.insert(vec1.begin() + count, tempVec);

由于
count
是一个整数,并且的第一个参数是迭代器,而不是整数,因此会出现编译器错误

要使用迭代器到达向量中的某个位置,请使用
vector::begin()
迭代器并添加到该位置:

因此:

vec1.insert(count, tempVec);
应该是

vec1.insert(vec1.begin() + count, tempVec);

它给了我一个“vec1.insert(count,tempVec);”的编译器错误,但我不知道为什么。你必须提供一个真正不符合逻辑的是
clear
,然后在循环中
push_
。“clear”是为了清除tempVec,因为我之前出于不同的原因使用它,然后在每次使用之前清除它,因为我只是插入一个数字。循环是为了迭代问题。查看文档-此方法使用基于迭代器的接口,而不是索引。它给了我一个编译器错误“vec1.insert”(count,tempVec);“但我不知道为什么。你必须提供一个真正不符合逻辑的是循环中的
清除
,然后是
推回
。“清除”是为了清除tempVec,因为我之前出于不同的原因使用它,然后在每次使用之前清除它,因为我只插入了一个数字。循环是为了迭代问题。查看文档-此方法使用基于迭代器的接口,而不是索引。谢谢!这很好地解决了特定问题。谢谢!T帽子很好地解决了那个问题。