Suche Beispiel

HonniCilest

Erfahrenes Mitglied
Hallo,

ich komme aus der Java Ecke und tue mich ganz ehrlich noch etwas schwer mit C++.
Ich bräuchte ein Beispiel für eine Liste von Arrays. Falls es nicht zu viel verlangt ist, könntet ihr mir eventuell zur Verfügung stellen, wie dieses grobe Beispiel (Java) als C++ Code aussehen würde?

Java:
import java.util.ArrayList;
import java.util.Arrays;

public class ListOfArrays {
    public static void main(String... args) {
        ArrayList<boolean[]> list = new ArrayList<>();
        
        list.add(new boolean[]{true, false, true});
        list.add(new boolean[]{true, true, true});
        list.add(new boolean[]{false, false, false});
        
        for(boolean[] entry : list) {
            System.out.println(Arrays.toString(entry));
        }        
    }
}
 

cwriter

Erfahrenes Mitglied
Sind die Subarrays immer gleich gross? Hier mal die allgemeinste Lösung:
C++:
#include <iostream>
#include <vector>

void printSubarray(const std::vector<bool>& v) {
    std::cout << "{" << std::boolalpha; //boolalpha for "true"/"false" instead of 1/0
    for(size_t i = 0; i < v.size(); ++i) {
        if(i > 0) std::cout << ", ";
        std::cout << v[i];
    }
    std::cout << "}" << std::endl;
}
int main(int argc, char* argv[]) {
    std::vector<std::vector<bool>> list;
    list.push_back({true, false, true});
    list.push_back({true, true, true});
    list.push_back({false, false, false});

    for(const auto& entry : list) {
        printSubarray(entry);
    }
}

cwriter
 

HonniCilest

Erfahrenes Mitglied
Das hilft mir schon deutlich weiter, vielen Dank. Ja für den Anfang würde ich von gleichgroßen Arrays ausgehen. Ich sehe du hast einen Vector eines Vectors. Ist ein Array ein Vector ich C++? Falls nein, wie würde es aussehen, wenn wir wirklich von einem Array sprechen? Wäre das so richtig für Arrays der Größe n? Würde sich bei dieser Änderung der push_back auch verändern oder sähe dieser gleich aus? Ich habe leider noch keine funktionierende IDE sonst würde ich testen. Das ist alles erstmal nur Papier für mich.

C++:
std::vector<std::array<bool, n>> list;
 

Jennesta

Erfahrenes Mitglied
Ist ein Array ein Vector ich C++? Falls nein, wie würde es aussehen, wenn wir wirklich von einem Array sprechen? Wäre das so richtig für Arrays der Größe n?

Hi,
streng genommen ist es nicht ganz dasselbe. Ein typisches Array hat eine statische Größe, während ein vector dynamisch erweitert werden kann. Außerdem bietet ein vector komfortable Operationen auf den Daten.
Dazu vielleicht hilfreich:
http://www.cplusplus.com/reference/vector/vector/?kw=vector
Möglich sind auch std::list (header: <list>) und std::array (header: <array>), wobei std::vector meiner Meinung nach zu anfang am komfortabelsten ist.

Du hast bereits std::array verwendet. Die Verwendung sieht auf ersten Blick korrekt aus. Das ist quasi die C++ Variante der C Version.
 

Neue Beiträge