Você está aqui: C++ ::: Dicas & Truques ::: Strings e Caracteres |
Obtendo o tamanho da armazenagem alocada para um objeto stringQuantidade de visualizações: 7431 vezes |
Diferente das strings terminadas em null da linguagem C, objetos da classe string do C++ são dinamicamente redimensionadas quando necessário. A maioria das implementações iniciam com uma capacidade baixa e vão dobrando à medida que a quantidade de caracteres se iguala à capacidade do buffer. Desta forma, o valor resultante de uma chamada à função capacity será sempre igual ou maior que o valor retornado pelas funções size e length. Veja um exemplo: #include <string> #include <iostream> using namespace std; int main(int argc, char *argv[]) { // define uma variável do tipo string string str = ""; // obtém a capacidade atual cout << "Capacidade inicial: " << str.capacity() << "\n"; // redimensiona a string, mas esta continua vazia str.reserve(5); // obtém a capacidade atual cout << "Capacidade: " << str.capacity() << "\n"; // adiciona caracteres à string for(int i = 0; i < 300; i++){ str += "xxx"; // verifica a capacidade novamente if(str.size() == str.capacity()){ cout << "Aumentando a capacidade para: " << str.capacity() << "\n"; } } system("PAUSE"); // pausa o programa return EXIT_SUCCESS; } |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de C++ |
Veja mais Dicas e truques de C++ |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |