如何从2D数组中删除?

时间:2015-05-18 05:56:00

标签: c++ arrays

我在外部文件中有这个向量

1 4 12 3
13 3 22 5
14 22 2 34
222 11 3 31

我要删除x列和y行。我该怎么做并将其打印在外部文件中?

它是一个2D矢量,有4行,列有4个元素。

#include<iostream>
#include<fstream>

using namespace std;

void main ()
{
    int a[100][100],m,n;
    ifstream f("mat.txt");
    ofstream b("out.txt");
    f>>n;

    for(int i=0; i<n; i++)
    {
        for(int j=0; j<n; j++)
        {
            f>>a[i][j];
        }
    }

    for(int i=0; i<n; i++)
    {
        for(int j=0; j<n; j++)
        {
            b<<a[i][j]<<" ";
        }
        b<<endl;
    }
}

2 个答案:

答案 0 :(得分:0)

在这个例子中,我有x,y和文件名的硬编码值。

#include <iostream>
#include <fstream>
using namespace std;

int main() {
  ifstream fin("in.txt");
  ofstream fout("out.txt");
  int i, j, x = 1, y = 2;
  if (fin.is_open() && fout.is_open()) {
    for (i = 0; i < 16; ++i) {
      fin >> j;
      if (i % 4 != x && i / 4 != y) {
        fout << j;
        if (i % 4 == 3) {
          fout << endl;
        } else {
          fout << " ";
        }
      }
    }
    fin.close();
    fout.close();
  }
  return 0;
}

答案 1 :(得分:0)

可能你需要使用一些容器而不是普通的2d数组,以防从中间推出和弹出。尝试使用此http://i.stack.imgur.com/G70oT.png来获取权限或按关键字std,container,choose。搜索图像。