Ir ao conteúdo
  • Cadastre-se

Biblioteca Map


Maicon André

Posts recomendados

Bom o map faz parte da STADARD TEMPLATE LIBRARY ou STL.

o STL é divido basicamente em 2 partes

Sequence Containers e Associative Containers

Sequence Containers

list

forward_list ( VS 2010 ).

vector

deck

Associative Containers

Bom o mais comuns são

map

multimap

set

multiset

resumindo

os Conteiners Sequenciais trabalham como diz o nome, vamos usar o Vector como exemplo

é como se fosse um vetor normal

você criar um vetor

|2|3|5|55|66| ...

e vai usando o comando push_back(..)

para "carregar" o numeros dentro do vetor...

mas nem sempre você quer fazer isso

por isso que existe os Associative containers

que associam uma "Chave" a um Valor

Key => Value

por exemplo um numero de telefone associado ao seu nome..

o map é uma lib de associação, ou seja, você associa um Numero a um nome...

da uma estuda Sobre STL (STANDARD TEMPLATE LIBRARY) , resumindo

dentro do STL existe o Map que é faz isso

todas a funções do STL estão no namespace std;

bom é o seguinte.



#include <iostream>
#include <stdlib.h>
#include <map>
#include <string>

using namespace std;

int main()
{
map<int, string> m;

m[1] = "Um";
m[2] = "Dois";
m[4] = "quatro";

agora você pode printar o que você quiser na tela

cout << m[4] << endl;

m.clear();
}

bom o que vai aparecer na tela é o valor que o m[4] está associado, que no caso é

a string "quatro"...

você tambem pode mostrar todo o map utilizando iterator...

Boa sorte com os estudos espero ter ajudado

Daniel Marcos.

Link para o comentário
Compartilhar em outros sites

Eu queria saber...

Estou tentando criar um arquivo em C++ so que ele da que sempre já esta cheio mesmo eu não tando colocado nada no arquivo....

E até já tentei varias vezes apagar o arquivo de gravação que ele esta criando...

Tem algum jeito de abrir limpar este arquivo...

Limpar os espaços vazios....

Ou algum outro comando que de mais certo para isso....

Eu estou usando o ofstream para abrir e gravar no arquivo....

Link para o comentário
Compartilhar em outros sites

tenta usar a função de C ve se da a mesma coisa, caso contrário é por que você deve

esta fazendo algo errado com o ofstream


Exemplo de manipulação de arquivo em C

#include <stdio.h>

main()
{
char *str = "/pasta/nomeArquivo";
FILE *fp; /* Declaração da estrutura */
fp=fopen (str,"wb"); /* aso arquivo se chama nomeArquivo está localizado no diretório /pasta/dbase */
if (!fp)
printf ("Erro na abertura do arquivo.");
else
printf("Arquivo aberto com sucesso.");

fclose(fp);
}

é assim que funciona em C, mais existem outras formas de fazer isso em C++

da uma lida sobre manipulação de arquivos em C++ que você vai achar muita coisa

Daniel Marcos.

Link para o comentário
Compartilhar em outros sites

este é o meu programa, sobre arquivo indexado, ele não totalmente terminado esta ainda no inicio.

se vocês poderem me ajudar valeu..

#include<iostream>

#include<fstream>

#include<string>

//------------------------------------------------------------------------------

using namespace std;

//------------------------------------------------------------------------------

struct cliente

{

int CodCliente;

long int RgCliente;

string NomeCliente;

float Salario;

}c;

//------------------------------------------------------------------------------

void InserirCliente ()

{

cout << "NOME: ";

cin >> c.NomeCliente;

cout << "RG: ";

cin >> c.RgCliente;

if (c.RgCliente == c.RgCliente)

{

cout << "RG JA EXISTENTE." << endl;

}

else

{

cout << "SALARIO: ";

cin >> c.Salario;

}

}

//------------------------------------------------------------------------------

void RemoveCliente ()

{

}

//------------------------------------------------------------------------------

void BuscaCliente ()

{

cout << "NOME: " << c.NomeCliente;

cout << "RG: " << c.RgCliente;

cout << "SALARIO: " << c.Salario;

cout << "CODIGO: " <<c.CodCliente;

}

//------------------------------------------------------------------------------

int main ()

{

int op;

ofstream Indexado("ArquivoIndexado");

Indexado.open("ArquivoIndexado");

if (Indexado != 0)

cout << "ULTRAPASOU O LIMITE" << endl;

else

{

cout << "Informe sua opecao." << endl << "1. Inserir novo cliente." << endl << "2. Remover cliente." << endl;

cout << "3. Buscar cliente." << endl << "4. Alterar o codigo do clitene." << endl;

cin >> op;

while (op != 5)

{

switch (op)

{

case 1:

{

cout << "CODIGO: ";

cin >> c.CodCliente;

if (c.CodCliente != c.CodCliente)

{

InserirCliente();

}

else

{

cout << "CODIGO EXISTENTE. TENTE NOVAMENTE" << endl;

}

break;

}

case 2:

{

RemoveCliente();

break;

}

case 3:

{

cout << "Codigo: ";

cin >> c.CodCliente;

if (c.CodCliente == c.CodCliente)

{

BuscaCliente();

}

else

{

cout << "CODIGO INVALIDO." << endl;

}

break;

}

case 5:

{

exit(0);

}

default:

{

cout << "OPECAO INVALIDADE" << endl;

}

}

}

}

Indexado.close();

return 0;

}

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!