将INT值插入向量位置?

时间:2018-02-06 06:23:18

标签: c++ vector

首先,我是C ++的新手。我试图找出如何将Int值插入向量中的某个位置。

我在网上看到你可以使用insert函数来推送向量中的值但是我不断从编译器中获得重载操作符错误。我需要制作指针吗?

以下是整体目标/作业,以便您了解全局:

构建两个网格,每个网格分别为X宽和Y长,其中X和Y是用户输入,用于确定网格的大小。用'0'填充两个网格的每个单元格。

使用“1”随机填充网格单元格的1/3。您必须分别随机填充两个网格中的每个网格,以便它们没有填充“1”的所有相同方块。

比较两个网格(正方形比较)以找到两个网格中都有“1”的正方形。创建第三个网格,其中包含正方形中的“1”,其中两个比较网格都包含“1”并且在任何其他正方形中都包含“0”。

完整源代码:

#include <iostream>
#include <vector>
#include <time.h>
#include <stdlib.h>
#include <iterator> 
#include <algorithm>
#include <stdexcept>
using namespace std;

void print_vector(vector<vector<int>>& m_vec)
{
    for(auto itY : m_vec)
    {
        for(auto itX : itY)
            cout << itX << " ";
        cout << endl;
    }
}

void populate_vectors()
{
    int x = 0;
    int y = 0;
    //int i = 0;
    cout << "Grid Size:";
    cin >> x;
    cin >> y;
    int fill = (x*y) / 3;

    //Vector 1
    vector<vector <int>> yVector1;
    for(auto i = 0; i < x; ++i)
    {
        vector<int> xVector1;
        for(auto j = 0; j < y; ++j)
            xVector1.push_back(0);
        yVector1.push_back(xVector1);
    }
    cout << "Vector 1:" << endl;
    print_vector(yVector1);

    //Vector 2
    vector<vector <int>> yVector2;
    for(auto i = 0; i < x; ++i)
    {
        vector<int> xVector2;
        for(auto j = 0; j < y; ++j)
            xVector2.push_back(0);
        yVector2.push_back(xVector2);
    }
    cout << "Vector 2:" << endl;
    print_vector(yVector2);

    cout << endl;
    cout << "New Vec:" << endl;
    //yVector1.insert(yVector1.begin() + x, 2); //? What I have tried
    print_vector(yVector1);
    print_vector(yVector2);
}

int main()
{
    int k; //Temporary will be removed
    populate_vectors();
    //populate_vectors();
    //populate_vectors();
    //populate_vectors();
    cin >> k; //Temporary will be removed
    return 0;
}

0 个答案:

没有答案