Como criar um vetor de estruturas em C ++

Como criar um vetor de estruturas em C ++
Um vetor de estruturas é uma boa estrutura de dados para uma tabela de banco de dados. A tabela a seguir é uma tabela de banco de dados de produtos:
ID do produto Nome do Produto Categoria Número
1 Aparelho de TV Entretenimento 10
2 Vcd Entretenimento 20
3 Caixa de roupas Doméstico 30
4 Perfume Beleza 40
5 Banana Fruta 50
6 Pera Fruta 60

Existem seis linhas de dados na tabela. A linha do cabeçalho (productId, Nome do produto, categoria, etc.) não é uma linha de dados. Estritamente falando, a linha do cabeçalho não está incluída em (não faz parte de) o vetor de estruturas em c++. Esta tabela deve ser considerada como uma lista de linhas do mesmo tipo de linha, começando da linha 1. Estritamente falando, a linha do cabeçalho não pode ser do mesmo tipo que o restante das linhas na tabela.

A string em cada célula, da linha do cabeçalho, descreve o restante dos dados da coluna. Este artigo explica como criar um vetor C ++ de estruturas e sua aplicação para criar uma tabela de banco de dados.

Conteúdo do artigo

- estrutura

- Construção do vetor de estruturas

- Alimentando dados no vetor de estruturas

- Problema da linha do cabeçalho

- Conclusão

Estrutura

Uma estrutura é semelhante a uma classe. Objetos são instanciados de uma estrutura. A definição de uma estrutura começa com a palavra reservada, struct, seguida pelo nome generalizado (nome da classe) da estrutura, depois um par de aparelhos, dentro dos quais são membros da estrutura. A definição termina com um semicolon após o suporte encaracolado de fechamento. O código a seguir é uma estrutura para cada linha da tabela acima; A linha do cabeçalho não é considerada aqui:

linha de estrutura
não assinado int productId;
String ProductName;
categoria de string;
número int não assinado;
Float CostPrice;
Float SellingPrice;
;

Observe que os membros do nome do produto e da categoria são strings. Isso significa que a biblioteca de string deve ser incluída no programa. O nome generalizado para a estrutura é, linha. Objetos como Row1, Row2, Row3, etc. pode ser instanciado da linha. No entanto, nomes específicos para objetos de linha não são necessários para os fins deste artigo, porque a “linha” será o argumento do parâmetro de modelo para o vetor.

Construção do vetor de estruturas

A declaração de um vetor de caracteres pode ser:

vetor vtr;

onde char é o argumento do parâmetro de modelo para o vetor, cujo nome é, vtr. Da mesma forma, a declaração para o vetor de linhas de estrutura seria:

vetor vtr (7);

Onde "Row" é o argumento do parâmetro de modelo para o vetor, cujo nome ainda pode ser, VTR. Existem seis linhas e uma linha de cabeçalho na tabela acima. Isso faz com que o número de linhas, 7. Linha 0 é a linha do cabeçalho, que pode não ter nenhum de seus próprios dados. O número inicial de linhas pode ser indicado na declaração de vetor de estruturas.

Para codificar um vetor em um programa C ++, a biblioteca vetorial deve ser incluída no programa. A cabeça do programa deste artigo deve ser:

#incluir
#incluir
#incluir
usando namespace std;

No programa, isso é seguido pela definição da linha de estrutura e, em seguida, a declaração do vetor de linhas de estrutura antes da função principal do C ++.

Alimentando dados para o vetor de estruturas

Para acessar um elemento na estrutura bidimensional de vetor de estruturas, comece com o nome do vetor, e.g., vtr. O é seguido pelo número do subscrito entre colchetes, que é seguido por um ponto, e depois o nome da coluna, e.g., ID do produto. O código a seguir na função principal do C ++ alimentaria dados em linhas da linha 1 à linha 6:

VTR [1].ProductId = 1; VTR [1].ProductName = "TV Conjunto"; VTR [1].Categoria = "entretenimento"; VTR [1].Número = 10;
VTR [2].ProductId = 2; VTR [2].ProductName = "VCD"; VTR [2].Categoria = "entretenimento"; VTR [2].Número = 20;
VTR [3].ProductId = 3; VTR [3].ProductName = "Caixa Caixa"; VTR [3].Categoria = "doméstico"; VTR [3].Número = 30;
VTR [4].ProductId = 4; VTR [4].ProductName = "perfume"; VTR [4].Categoria = "beleza"; VTR [4].Número = 40;
VTR [5].ProductId = 5; VTR [5].ProductName = "Banana"; VTR [5].Categoria = "fruta"; VTR [5].Número = 50;
VTR [6].ProductId = 6; VTR [6].ProductName = "Pear"; VTR [6].Categoria = "fruta"; VTR [6].Número = 60;

Após esse segmento de código, o seguinte segmento de código na função principal C ++ exibiria todos os valores celulares da estrutura bidimensional:

cout << vtr[1].ProductID <<", "; cout << vtr[1].ProductName <<", "; cout << vtr[1].Category <<", "; cout << vtr[1].Number <cout << vtr[2].ProductID <<", "; cout << vtr[2].ProductName <<", "; cout << vtr[2].Category <<", "; cout << vtr[2].Number <cout << vtr[3].ProductID <<", "; cout << vtr[3].ProductName <<", "; cout << vtr[3].Category <<", "; cout << vtr[3].Number <cout << vtr[4].ProductID <<", "; cout << vtr[4].ProductName <<", "; cout << vtr[4].Category <<", "; cout << vtr[4].Number <cout << vtr[5].ProductID <<", "; cout << vtr[5].ProductName <<", "; cout << vtr[5].Category <<", "; cout << vtr[5].Number <cout << vtr[6].ProductID <<", "; cout << vtr[6].ProductName <<", "; cout << vtr[6].Category <<", "; cout << vtr[6].Number <A saída é:

1, TV, entretenimento, 10

2, VCD, entretenimento, 20

3, caixa de roupas, família, 30

4, perfume, beleza, 40

5, banana, frutas, 50

6, pêra, frutas, 60

Um loop for usado para imprimir todos os valores das células. O loop for itera sobre as linhas, começando do índice 1. O loop for itera nenhuma linha, porque colunas diferentes têm nomes diferentes, e cada coluna pode ser identificada pelo seu nome.

Problema da linha do cabeçalho

A linha do cabeçalho está no índice zero. A linha do cabeçalho consiste em todas as cordas, mas o resto das linhas, não possui apenas colunas de string. Bem, a linha do cabeçalho como uma corda é:

"ProductId, Nome do produto, categoria, número"

A segunda coluna da estrutura bidimensional leva uma corda. Então, toda essa corda de cabeçalho pode ser colocada na segunda célula da linha 0. O restante das células na linha 0 terá seus valores padrão. Por exemplo, o valor padrão de uma variável int é 0.

O código pode ser escrito para separar essa sequência de cabeçalho em suas seqüências de cabeçalho da coluna para exibição de toda a tabela, incluindo a linha do cabeçalho, mas isso não é abordado neste artigo.

Fazer a segunda célula da linha 0 ter toda a corda do cabeçalho é simples da seguinte maneira:

VTR [0].ProductName = "ProductId, ProductName, Category, Número";

Observe o índice de 0 para a linha 0. Ler tudo isso como uma corda também é simples da seguinte maneira:

string str = vtr [0].Nome do Produto;
cout << str << endl;

A saída deve ser:

ProductId, nome do produto, categoria, número

Separar toda.

Conclusão

Para criar um vetor de estruturas, defina a estrutura, com um nome generalizado (classe). Fazer o argumento de modelo do vetor de interesse, o nome generalizado da estrutura. Acesse cada célula da estrutura bidimensional com a sintaxe, vtr [i].nome da coluna.