uzupełnianie tablic dynamicznych w pętli

0

wyrzuca mi błąd w pętlach, jak uzupełnić te tablice? próbowałem też s1[i]=a[i];

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

int main() {
	string a, b;
	getline(cin, a);
	getline(cin, b);

	int m = a.length();
	int n = b.length();

	vector<string> s1(m);
	vector<string> s2(n);

	for (int i = 0; i < m; i++)
		s1.push_back(a[i]);

	for (int j = 0; j < n; j++)
		s2.push_back(b[j]);

	return 0;
}
1

Jaki błąd jest wyrzucany?
Co chcesz otrzymać, a jaki jest efekt?
Polegasz na jakiś danych wejściowych, nie widzę żadnego przykładu, który pozwoliłby cokolwiek założyć, np. że linie nie są puste.

0

Chce wrzucic stringa do tablicy w taki sposob zeby kazda jego litera miala osobny indeks w tablicy. Jak to w takim razie zrobic?

0

String sam w sobie jest tablicą znaków, do których możesz odnosić się używając notacji cout << a[i]; b[i]='a';. Nie widzę sensu używania vectora w tym przypadku.
Jeżeli chodzi o twój kod, to nie kompiluje się dlatego że używasz vector<string> zamiast string<char>.

1

Czytasz co Ci kompilator pisze, do wektora stringów Dorzucasz znaki, zmień na to:

	string a, b;
    getline(cin, a);
    getline(cin, b);

    int m = a.length();
    int n = b.length();

    vector<char> s1(m);
    vector<char> s2(n);

    for (int i = 0; i < m; i++)
        s1.push_back(a[i]);

    for (int j = 0; j < n; j++)
        s2.push_back(b[j])

albo wcześniej Kowertuj char -> string.

2

Albo używasz push_back i zaczynasz z zeroma elementami w wektorze (np. vector<char> s1(0);, albo po prostu vector<char> s1;), albo od razu tworzysz ich określoną ilość (tak jak w vector<char> s1(m);), a potem robisz po prostu s1[i] = a[i].

1 użytkowników online, w tym zalogowanych: 0, gości: 1