Lab C++

Codificação Eficiente

Não basta conhecer a sintaxe, é preciso conhecer a linguagem, saber a melhor forma de fazer.

Operações com Tempo em C++

A versão C++11 da linguagem C++ incluiu um novo conjunto de classes, funções e tipos para manipulação de tempo. O namespace std::chrono contém algumas ferramentas que trazem para a linguagem C++ o que até então somente estava disponível através do header <time.h> do C.

(mais…)

Conversões Numéricas Utilizando std::ratio

Uma boa funcionalidade adicionada no C++11, a biblioteca std::ratio cria meios para expressar diferentes tipos de relação entre grandezas, facilitando a aritmética básica e a conversão entre elas, além de trazer um conjunto de instâncias padrão para facilitar as conversões mais básicas.

(mais…)

Alocação de Arrays Multidimensionais

Na linguagem C os arrays multidimensionais, ou matrizes, são alocadas como um único bloco de memória, independente de quantas dimensões tenha o array. Isso implica em algumas situações que pode facilitar o acesso a elementos individuais de forma mais rápida. Saber como os arrays funcionam auxiliam não só na otimização do código, como também na identificação e correção de falhas.

(mais…)

STL Algorithms: Algoritmos de Pesquisa

Mais um post sobre STL Algorithms, semana passada foram dois posts referentes a assuntos complementares, hoje o post é sobre fazer pesquisa utilizando std::find e std::search.

(mais…)

STL Algorithms: Alteração de Containers com std::transform

No post anterior falamos sobre std::for_each. Mas percebeu que não dá pra alterar o conteúdo do container dessa forma? A solução é o std::tranform. Vamos começar com um exemplo de como o for_each não funciona. Um programa para incrementar todos os elementos de um std::list:

(mais…)

STL Algorithms: Iterando com std::for_each

C++ tem várias opções de iteração. Desde o C++98 existe o algoritmo for_each disponível. Basicamente o que este algoritmo faz é executar uma função a todos os elementos contidos em um tipo iterável, tal como um std::vector, ou um std::map, dentre diversos outros.

(mais…)

Parser de Campos Utilizando strtok

Uma ótima ferramenta para fazer parser de campos separados por caracter é o strtok. Nesse caso vamos fazer um contador de palavras e um parser básico de CSV. Apesar de ser uma função muito bem documentada tem gente que ainda se enrola um pouco ao usar, então vamos aprender como fazer certo.

(mais…)

Retorno de Ponteiro para Variável Local

Tá aí uma falha que pode causar problemas intermitentes e consequentemente muitas horas de desenvolvimento para corrigi-la. Vamos aprender a identificá-la e como evitar esse problema.

Abertura de Escopo

Tem muito programador C/C++ por aí que não sabe como abrir um escopo novo. Basicamente qualquer par de chaves abre um novo escopo em C/C++, e as variáveis ali declaradas somente tem validade dentro desse escopo. Em tempo de compilação isso serve para determinar a validade de cada variável.

(mais…)