C ++ Czy std :: string jest kontenerem?

To może być proste pytanie dla niektórych z was. Ale zastanawiałem się, czystd::string jest pojemnikiem. Przez pojemnik mam na myśli takie pojemniki jak na przykładstd::vector, std::list istd::deque.

Odstd::basic_string<> akceptuje inne typy niż znaki zintegrowane, ale jest również optymalizowany przez pracę z tablicami znaków. Nie jest dla mnie jasne, w jakiej kategorii się znajduje.

To się skompiluje:

#include <string>
#include <iostream>

int main() {
    std::basic_string<int> int_str;
    int_str.push_back(14);
    return 0;
}

Ale dodając tę ​​linię:

std::cout << int_str << std::endl;

Nie będzie. Dzięki tym faktom mogłem stwierdzić, że std :: basic_string nie był przeznaczony do pracy z innymi typami niż znaki.

To może być dla ciebie dziwne pytanie. Powodem, dla którego muszę to wiedzieć, jest to, że pracuję nad frameworkiem i wciąż nie jestem w stanie określić, w której kategorii spadnie „ciąg”.

questionAnswers(3)

yourAnswerToTheQuestion