English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ Uso e exemplo da função max_size() do map

C++ STL Map ( Container )

C ++ map max_size()A função é usada para obter o tamanho máximo que o contêiner do map pode suportar.

Sintaxe

Tipo de membrosize_typeÉ um tipo inteiro sem sinal.

size_type max_size() const; //  De C++ 11 Antes
size_type max_size() const noexcept; //De C++ 11 Começando

Parâmetros

Sem

Retorno

Ele retorna o comprimento máximo permitido do contêiner do map.

Exemplo1

Vamos ver um exemplo simples para calcular a capacidade máxima do map.

#include <iostream>
#include <map>
using namespace std;
 
int main()
{
    map<char, char> s;
    cout << "A maior capacidade do map é " << s.max_size() << "\n";
}

Saída:

A maior capacidade do map é 268435455

No exemplo acima, a função max_size() retorna a capacidade máxima do map.

Exemplo2

Vamos ver um exemplo simples.

#include <iostream>
#include <map>
 using namespace std;
 int main ()
{
  int i;
  map<int, int> mymap;
  if (mymap.max_size()1000)
  {
    for(i = 0; i<1000; i++) mymap[i] = 0;
    cout << "O map contém1000 elementos.\n";
  }
  else cout << "O map não pode conter1000 elementos.\n";
  return 0;
}

Saída:

O map contém1000 elementos.

No exemplo acima, o membro max_size é usado para verificar previamente se o map permite a inserção1000 elementos.

Exemplo3

Vamos ver um exemplo simples, encontrar o tamanho máximo de um map vazio e um map não vazio.

#include <map>
#include <iostream>
using namespace std;
 
int main()
{
 
    //Inicializar o contêiner
    map<int, int> mp1, mp2;
    mp1[1] = 1111;
 
    //Tamanho máximo do map não vazio
    cout << "\nTamanho máximo do map não vazio: " << mp1O tamanho máximo de " << mp1.max_size();
 
    // Tamanho máximo do map vazio
    cout << "\nTamanho máximo do map vazio: " << mp2O tamanho máximo de " << mp2.max_size();
    return 0;
}

Saída:

mp1tem o tamanho máximo de 178956970
mp2tem o tamanho máximo de 178956970

No exemplo acima, há dois map, ou seja, m1e m2.m1É um map não vazio, m2É um map vazio. Mas, os tamanhos máximos dos dois map são iguais.

Exemplo4

Vamos ver um exemplo simples.

#include <iostream>
#include <map>
#include <string>
using namespace std;
int main() {
  typedef map<string, int> city;  
   string name;
   int age;
   city fmly;
   int n;
   cout << "\nInsira o número de membros da família: ";
   cin >> n;
   cout << "\nInsira o nome e a idade de cada membro: \n";
   for(int i = 0; i<n; i++)
   {
       cin >> name; 
       cin >> age;  
       fmly[name] = age; 
   }
   
      cout << "\nMapa total da cidade: " << fmly.max_size();
      cout << "\nNúmero total de membros da família: " << fmly.size();
      cout << "\nDetalhes dos membros da família: \n";
      cout << "\nNome \| \n\n________________________\n";
      city::iterator p;
      for(p = fmly.begin(); p!=fmly.end(); p++)
      {
          cout << (*p).first << " \| " << (*p).second << " \n \n";
      }
    
   return 0;
}

Saída:

输入家庭成员人数 : 3
输入每个成员的姓名和年龄: 
Ram 42
Sita 37
Laxman 40
城市总人口map: 384307168202282325
家庭总成员是:3
家庭成员的详细信息: 
Name    |  Age 
__________________________
Laxman | 40 
Ram      | 42 
Sita       | 37

No exemplo acima, o programa cria interativamente um map de tamanhos dados. Em seguida, ele mostra o tamanho total que o map pode conter, o tamanho total de cada foto e todos os nomes e idades disponíveis no map.

C++ STL Map ( Container )