首先,我是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;
}