Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.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++;二维数组的动态分配_C++_Arrays_Dynamic_2d_Allocation - Fatal编程技术网

C++ c++;二维数组的动态分配

C++ c++;二维数组的动态分配,c++,arrays,dynamic,2d,allocation,C++,Arrays,Dynamic,2d,Allocation,我想创建一个动态分配的2d数组,但我真的不知道怎么做。我搜索过谷歌和所有东西,但就是没法让它工作。到目前为止,我的代码是: 邮递服务: #ifndef POSTAHH #define POSTAHH #include <vector> #include <string> #include <iostream> #include "feladoH.h" using namespace std; class postaH : public feladoH{

我想创建一个动态分配的2d数组,但我真的不知道怎么做。我搜索过谷歌和所有东西,但就是没法让它工作。到目前为止,我的代码是:

邮递服务:

#ifndef POSTAHH
#define POSTAHH
#include <vector>
#include <string>
#include <iostream>
#include "feladoH.h"

using namespace std;

class postaH : public feladoH{
  private:
          int szertekek[7];
          string szovegek[7];
          int a,b;
          int** szamosszesit;
          string d,c;
          string** szovosszesit;
  public:
         postaH();
         postaH(int szertekek[7], string szovegek[7],int,int,string,string);
         ~postaH();
         postaH(postaH& pos);
         int getSzertek();
         string getSzovegek();
         void setSzertek(int ir,int hsz,int szulev, int cir, int chsz,int surg, int suly);
         void setSzovegek(string nev,string varos,string utca,string cnev,string cvaros,string cutca,string cstipus);
         void hozzaad();
         void fajlbakiir();
};
#endif
\ifndef POSTAHH
#定义POSTAHH
#包括
#包括
#包括
#包括“feladoH.h”
使用名称空间std;
邮资类别:公共费拉多{
私人:
int-szertekek[7];
字符串szovegek[7];
INTA,b;
国际**szamosszesit;
字符串d,c;
字符串**szovossesit;
公众:
postaH();
postaH(int-szerteek[7],string-szovegek[7],int,int,string,string);
~postaH();
邮递员(邮递员及pos);
int getSzertek();
字符串getSzovegek();
void setSzertek(内部住宅区、内部高速住宅区、内部szulev、内部cir、内部住宅区、内部苏黎世);
void setSzovegek(字符串nev、字符串varos、字符串utca、字符串cnev、字符串cvaros、字符串cutca、字符串cstipus);
void hozzaad();
void fajlbakiir();
};
#恩迪夫
postaS.cpp:

#include <string>
#include <iostream>
#include <fstream>
#include "postaH.h"

int seged = 0;

using namespace std;

postaH::postaH(){
          int szertekek[7];
          string szovegek[7];     
          int** szamosszesit;
          string** szovosszesit;
   }

postaH::postaH(int szertekek[7], string szovegek[7],int aa,int bb,string dd,string cc)     : a(aa),b(bb),d(dd),c(cc){
   this->szertekek[7] = szertekek[7];
   this->szovegek[7] = szovegek[7];
    szamosszesit = new int*[a];
for (int i = 0; i<a; i++){
        szamosszesit[i] = new int[b];
    }
    for (int i = 0; i<a; i++){
    for (int j = 0; j<b; j++){
        szamosszesit[i][j] = 0;
    }
szovosszesit = new string*[d];
for (int i = 0; i<d; i++){
    szovosszesit[i] = new string[d];
}
for (int i = 0; i<d; i++){
    for (int j = 0; j<c; j++){
        szovosszesit[i][j] = 0;
        }
}

postaH::~postaH(){
              delete [] szertekek;
              delete [] szovegek;
              for (int i = 0; i<a; i++){
                  delete [] szamosszesit[i];
                    } 
                    delete [] szamosszesit;
            for (int i = 0; i<d; i++){
                  delete [] szovosszesit[i];
                    } 
                        delete [] szovosszesit;
}

postaH::postaH(postaH& pos){
   this->szertekek[7] = pos.getSzertek();
   this->szovegek[7] = pos.getSzovegek(); 
    }

int postaH::getSzertek(){
return szertekek[7];
}

std::string postaH::getSzovegek(){
return szovegek[7];        
}

void postaH::setSzertek(int ir,int hsz,int szulev, int cir, int chsz,int surg, int suly){
 this->szertekek[0] = ir;
 this->szertekek[1] = hsz;
 this->szertekek[2] = szulev;
 this->szertekek[3] = cir;
 this->szertekek[4] = chsz;
 this->szertekek[5] = surg;
 this->szertekek[6] = suly;
}

void postaH::setSzovegek(string nev,string varos,string utca,string cnev,string cvaros,string cutca,string cstipus){
 this->szovegek[0] = nev;
 this->szovegek[1] = varos;
 this->szovegek[2] = utca;
 this->szovegek[3] = cnev;
 this->szovegek[4] = cvaros;
 this->szovegek[5] = cutca;
 this->szovegek[6] = cstipus;
}

void postaH::hozzaad(){

}

void postaH::fajlbakiir(){
 ofstream kezb;
 kezb.open ("kezbesitett.txt", ios::app);
 for( int i=0;i<7;i++){
      kezb << szovegek[i] << ",";
      kezb << szertekek[i] << ",";
      }
 kezb << "\n";
 kezb.close();
}
#包括
#包括
#包括
#包括“postaH.h”
int seged=0;
使用名称空间std;
postaH::postaH(){
int-szertekek[7];
字符串szovegek[7];
国际**szamosszesit;
字符串**szovossesit;
}
postaH::postaH(int-szertekek[7],string-szovegek[7],int-aa,int-bb,string-dd,string-cc):a(aa),b(bb),d(dd),c(cc){
this->szerteek[7]=szerteek[7];
this->szovegek[7]=szovegek[7];
szamosszesit=新整数*[a];
对于(int i=0;iszertekek[5]=surg;
这->Szerteek[6]=suly;
}
void postaH::setSzovegek(字符串nev、字符串varos、字符串utca、字符串cnev、字符串cvaros、字符串cutca、字符串cstipus){
this->szovegek[0]=nev;
this->szovegek[1]=varos;
this->szovegek[2]=utca;
本->绍维耶克[3]=cnev;
this->szovegek[4]=cvaros;
this->szovegek[5]=cutca;
this->szovegek[6]=cstipus;
}
无效邮资::hozzaad(){
}
void postaH::fajlbakiir(){
科兹布流;
kezb.open(“kezbesitet.txt”,ios::app);

对于(int i=0;i通常,如果要创建数组,最好使用适合该任务的容器:

  • std::vector
    用于项目的顺序容器
  • std::deque
    用于需要从任意一端更新的项目顺序容器
  • std::list
    用于将从序列中的任意点更新的序列容器

从一开始就尝试“用英语”编写代码,这些匈牙利函数和变量名的可读性不强。基本上,我想制作2个2d数组,将一些存储的数据放入其中。用户通过控制台提供数据,该控制台存储在Szerteek、szovegek数组中,我想将该数据存储在2d数组中(szovosszesit,szamosszesit)这样我可以打印最后10个存储的数据。可以从函数和变量名中收集大量上下文。但是,由于一般观众无法阅读匈牙利语,因此上下文丢失。我强烈建议不要使用“动态数组”使用指针。一组向量要好得多。例如
std::vector szamosszesit;
hmmm。我会尝试一下。thx:)我对顺序的定义可能与数学定义不同。我用它来描述你可以很容易地从[0..n]中枚举。