Klasa vector – przechowywanie obiektów klasy string

0

Witam. Chciałbym zadeklarować obiekt klasy vector dla np. 10 obiektów klasy string oraz obiekt klasy array dla 10 obiektów klasy string, a następnie zdefiniować elementy zerowe tych obiektów jakimś łańcuchem i teraz:

#include "stdafx.h"
#include<iostream>
//#include<cstring>
#include<string>
#include<vector>
#include<array>


int main()
{
const uint8_t stala = 10;
std::vector<std::string>ob1[stala];std:: array<std::string, stala>ob2;
//ob1[0]="23"; //blad, nie wiem czemu
ob2[0] = "mammamija";
std::cout << std::endl<<ob2[0]<<std::endl;
system("pause");
return 0;
}

kod działa tylko dla obiektów klasy array, natomiast dla vector wyrzuca błąd:

E0349	żaden operator "=" nie pasuje do tych argumentów operacji.

W takim razie jak poprawnie wykonać to zadanie?

2

Deklarując zmienną w ten sposób

std::vector<std::string>ob1[stala];

powstaje nie vector stringów o wielkości stala, lecz tablica vectorów stringów.
Można utworzyć vector, zmienić jego rozmiar i użyć operatora [].

std::vector<std::string> tab;
tab.resize(10);
tab[0]="23";
3

Chciałbym zadeklarować obiekt klasy vector dla np. 10 obiektów klasy string

Proszz...

std::vector<std::string> vec(10);
vec[0] = "text";

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