Gå til innhold

Flerdimensjonell array / tabell i c++


Anbefalte innlegg

Skrevet

Jeg anntar dette kalles en flerdimensjonal tabell, da vi har X og Y.

 

3 ? ? ?

2 ? ? ?

1 ? ? ?

A B C

 

? = tilfeldige tall. 3B kan for eksempel være 82.

 

Det jeg vil er å legge denne tabellen inn i C++. Har lest litt om arrays, men har ikke helt forstått hvordan dette vil bli i kode. Så det hadde vert fint om noen ville hjulpet meg, i det minste på rett vei.

 

Programmet ber bruker skrive ein raw og column, og deretter skal programmet skrive ut informasjonen som ligger i det elementet.

 

I grunn er jeg da altså ute etter et kode eksempel på akkurat dette.

Videoannonse
Annonse
Skrevet (endret)

Compile error:

vector is not a member of std

 

Kva for library files må jeg inkludere i headeren ?

 

Eg brukar Dev C ++, og har ikke lagt til noko utanom det som kom med sjølve programmet.

Endret av ouCHastilaer
Skrevet (endret)

Også kan du evt bruke C versjonen:

 

int array[3][3];

 

Eksempel:

 

int iArray[3][3], i, j;

cout << "Trykke inn verdier:" << endl;

for(i=0; i<3; i++)
 for(j=0; j<3; j++)
 {
 	cout << "iArray[" << i << "][" << j << "]: ";
 	cin >> iArray[i][j];
 }

cout << "Skriver ut innholdet til iArray: " << endl;

for(i=0; i<3; i++)
 for(j=0; j<3; j++)
 {
 	cout << "iArray[" << i << "][" << j  << "]: " << iArray[i][j] << endl;
 }

 

C++ vektorer kan du jo prøve på selv :)

Endret av ReddBuLL
Skrevet (endret)

her er en som gjør at du kan bruke "hva som helst" til indeksering:

http://nostdal.org/~lars/programming/c/oxy.../util/table.hpp

http://nostdal.org/~lars/programming/c/oxy.../util/table.cpp

 

under kjøring:

edit: ble bedre her: http://paste.lisp.org/display/25008

lars@ibmr52:~/programming/c/oxymora/demo/util$ ./table

tegner brettet

....................

....................

....................

....................

....................

....................

....................

....................

....................

....................

 

setter et kryss

tegner brettet

....................

....................

....................

..X.................

....................

....................

....................

....................

....................

....................

 

setter en sirkel

tegner brettet

....................

....................

....................

..X.................

...O................

....................

....................

....................

....................

....................

 

                                                                      #

                                                                    # #

                                                                    #  #

                                                                  # # # #

                                                                  #      #

                                                                # #    # #

                                                                #  #  #  #

                                                              # # # # # # # #

                                                              #              #

                                                            # #            # #

                                                            #  #          #  #

                                                          # # # #        # # # #

                                                          #      #      #      #

                                                        # #    # #    # #    # #

                                                        #  #  #  #  #  #  #  #

                                                      # # # # # # # # # # # # # # # #

                                                      #                              #

                                                    # #                            # #

                                                    #  #                          #  #

                                                  # # # #                        # # # #

                                                  #      #                      #      #

                                                # #    # #                    # #    # #

                                                #  #  #  #                  #  #  #  #

                                              # # # # # # # #                # # # # # # # #

                                              #              #              #              #

                                            # #            # #            # #            # #

                                            #  #          #  #          #  #          #  #

                                          # # # #        # # # #        # # # #        # # # #

                                          #      #      #      #      #      #      #      #

                                        # #    # #    # #    # #    # #    # #    # #    # #

                                        #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #

                                      # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

                                      #                                                              #

                                    # #                                                            # #

                                    #  #                                                          #  #

                                  # # # #                                                        # # # #

                                  #      #                                                      #      #

                                # #    # #                                                    # #    # #

                                #  #  #  #                                                  #  #  #  #

                              # # # # # # # #                                                # # # # # # # #

                              #              #                                              #              #

                            # #            # #                                            # #            # #

                            #  #          #  #                                          #  #          #  #

                          # # # #        # # # #                                        # # # #        # # # #

                          #      #      #      #                                      #      #      #      #

                        # #    # #    # #    # #                                    # #    # #    # #    # #

                        #  #  #  #  #  #  #  #                                  #  #  #  #  #  #  #  #

                      # # # # # # # # # # # # # # # #                                # # # # # # # # # # # # # # # #

                      #                              #                              #                              #

                    # #                            # #                            # #                            # #

                    #  #                          #  #                          #  #                          #  #

                  # # # #                        # # # #                        # # # #                        # # # #

                  #      #                      #      #                      #      #                      #      #

                # #    # #                    # #    # #                    # #    # #                    # #    # #

                #  #  #  #                  #  #  #  #                  #  #  #  #                  #  #  #  #

              # # # # # # # #                # # # # # # # #                # # # # # # # #                # # # # # # # #

              #              #              #              #              #              #              #              #

            # #            # #            # #            # #            # #            # #            # #            # #

            #  #          #  #          #  #          #  #          #  #          #  #          #  #          #  #

          # # # #        # # # #        # # # #        # # # #        # # # #        # # # #        # # # #        # # # #

          #      #      #      #      #      #      #      #      #      #      #      #      #      #      #      #

        # #    # #    # #    # #    # #    # #    # #    # #    # #    # #    # #    # #    # #    # #    # #    # #

        #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #  #

      # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

      #                                                                                                                              #

    # #                                                                                                                            # #

    #  #                                                                                                                          #  #

  # # # #                                                                                                                        # # # #

  #      #                                                                                                                      #      #

# #    # #                                                                                                                    # #    # #

    #  #  #                                                                                                                  #  #  #

  # # # # # #                                                                                                                # # # # # #

  #          #                                                                                                              #          #

# #        # #                                                                                                            # #        # #

    #      #  #                                                                                                          #  #      #

  # #    # # # #                                                                                                        # # # #    # #

  #  #  #      #                                                                                                      #      #  #  #

# # # # # #    # #                                                                                                    # #    # # # # # #

            #  #  #                                                                                                  #  #  #

          # # # # # #                                                                                                # # # # # #

          #          #                                                                                              #          #

        # #        # #                                                                                            # #        # #

        #  #      #  #

........

 

edit: ble bedre her: http://paste.lisp.org/display/25008

Endret av lnostdal
Skrevet (endret)

Tilsvarende eksempel som matcher det du var ute etter:

 

#include <oxymora/util/table.hpp>
#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>


using namespace std;
using namespace Oxymora;


template<typename T>
void readStdin(T& t, string msg, string on_wrong_input){	
 cout << msg << flush;
 while(!(cin >> t)){
   cout << on_wrong_input;
   cin.clear();
   cin.ignore(numeric_limits<streamsize>::max(), '\n');
   cout << msg << flush;}}


template<typename T>  
inline T toType(std::string const& source){
 std::istringstream iss(source);
 T ret;
 iss >> ret;
 return(ret);}


int main(){
 // This makes sure the random numbers really are random.
 srand(time(0)); srand(time(0));
 
 // 2 dimensional array of ints, with characters as "axis-elements".
 Table<2, int, char> table;

 table['1']['A'] = rand();
 table['1']['B'] = rand();
 table['1']['C'] = rand();
 table['2']['A'] = rand();
 table['2']['B'] = rand();
 table['2']['C'] = rand();
 table['3']['A'] = rand();
 table['3']['B'] = rand();
 table['3']['C'] = rand();

 while(true)
   {char x, y;
     readStdin(x, "Type in the X-axis-thingy: ", "No, I expect a character for the X-axis-thingy: ");
     cin.ignore(numeric_limits<streamsize>::max(), '\n');
     readStdin(y, "Type in the Y-axis-thingy: ", "No, I expect a character for the Y-axis-thingy: ");
     cin.ignore(numeric_limits<streamsize>::max(), '\n');
     cout << "table['" << x << "']['" << y << "']: " << table[x][y] << endl;}}

 

lars@ibmr52:~/programming/c/oxymora/demo/util$ ./table2

Type in the X-axis-thingy: 1

Type in the Y-axis-thingy: A

table['1']['A']: 724860259

Type in the X-axis-thingy: 1

Type in the Y-axis-thingy: B

table['1']['B']: 712215369

Type in the X-axis-thingy: 1

Type in the Y-axis-thingy: A

table['1']['A']: 724860259

Type in the X-axis-thingy:

 

edit:

siden det er _tegn_ som blir brukt til å spesifisere posisjoner på aksene må du gå over til `std::string' om du ønsker å lagre "tall" større enn 9 (altså flere enn étt tegn) .. du bør dog vurdere å bruke heltall på aksene i stedet - da kan ofte ting forenkles (og optimaliseres, om ønskelig) endel

Endret av lnostdal

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...