Vector im Vector!
-
Hallo Freunde,
ich bin relativ neu bei C++ (vorher Python) und wollte einen String in einen Vector anhängen, der sich aus einem anderen Vector ergibt ... Nur leider wird "nichts" in den Vector eingeladen wieso? (gemeint ist der Vector Keys.push_back(Key_Change[(i)])) benutze QT und Linux !#include "mainwindow.h" #include "ui_mainwindow.h" #include "qstring.h" #include "QMessageBox" #include "iostream" #include "vector" using namespace std; MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); connect(ui->pushButton, &QPushButton::clicked, this, &MainWindow::generate_Key); } void MainWindow::generate_Key() { vector<string> Keys(50); if (ui->checkBox->isChecked()) { vector<string> Key_Change = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}; for(int i = 0; i == 23; i++) { Keys.push_back(Key_Change[(i)]); } cout << Keys[0] << endl; } if (ui->checkBox_2->isChecked()) { } if (ui->checkBox_3->isChecked()) { } if (ui->checkBox_4->isChecked()) { } if (ui->checkBox_5->isChecked()) { } else { QMessageBox msgBox; msgBox.setText("Please Setup the Settings!"); msgBox.exec(); } } MainWindow::~MainWindow() { delete ui; }
-
Der Vergleich in der for-Schleife sieht komisch aus. Der Schleifenrumpf wird vermutlich nicht sooo oft ausgeführt.
-
Abgesehen davon schaut der Code ziemlich komisch aus. Was willst du denn machen? Evtl. machts keinen Sinn, so weiterzumachen.
-
@b1llyth3k1t sagte in Vector im Vector!:
Nur leider wird "nichts" in den Vector eingeladen wieso?
Woher weißt du das?
Dir ist klar, dass
vector<string> Keys(50);
einen Vector mit 50 Leerstrings anlegt undpush_back
den 51. am Ende anhängt?
-
@manni66 Ich hab das grade getestet auch bei den anderen Vectoren bleibt der "Vector" leer....
-
@mechanics Am ende soll bei einer TRUE Checkbox andere Vectoren zu dem Vector Keys hinzugefügt werden.
-
Was mir spontan einfällt, wäre z.B. eine map<QCheckBox*, vector<string>>. Oder ähnliche Konstrukte. Was du angefangen hast, schaut schon jetzt sehr redundant aus.
-
@manni66 sagte in Vector im Vector!:
Woher weißt du das?
-
Wie @DocShoe schon schrieb, ist deine Schleifenbedingung falsch. Ich denke, du möchtest
for(int i = 0; i < 24; i++)
bzw. besser wäre wohl
for(size_t i = 0; i < Key_Change.size(); i++)
Noch besser wäre jedoch einfach (anstatt der gesamten Schleife):
Keys.insert(Keys.end(), Key_Change.begin(), Key_Change.end()); // edit: war Keys.insert(Key_Change.begin(), Key_Change.end());
-
@th69 die insert funktion funktioniert leider nicht... (no matching member function for call to insert)
-
-
Ups, Parameter vergessen. Aber das sollte dich ja auch nur inspirieren, in der Doku nachzuschauen (z.B. vector ;- )
-
@th69 Tip am Rande:
```C++
... dann funktionierts auch mit den Kommentaren
-
Dafür gibt es keinen Button!
-
@th69 Ja. Für
- ini | toml,
- java | jsp,
- php | php3 | php4 | php5 | php6,
- objectivec | mm | objc | obj-c,
- diff | patch,
- coffeescript | coffee | cson | iced,
- json,
- ruby | rb | gemspec | podspec | thor | irb,
- css,
- perl | pl | pm,
- python | py | gyp,
- markdown | md | mkdown | mkd,
- apache | apacheconf,
- xml | html | xhtml | rss | atom | xjb | xsd | xsl | plist,
- javascript | js | jsx,
- http | https,
- makefile| mk | mak,
- nginx | nginxconf,
- cs | csharp,
- sql,
- bash | sh | zsh
auch nicht