Lab C++

Codificação Eficiente

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

Tags: STL

Threads em C++ – Parte 3: Objetos Atômicos

Objetos Atômicos são objetos que passam por alterações atômicas, ou seja, que não podem ser divididas, tornando-se seguras para acesso por múltiplas threads, sem risco de racing condition, nem de deadlock.

(mais…)

Threads C++ – Parte 2: Mutex

Quando falamos de processamento paralelo existe um problema que pode escalar de maneira muito destrutiva, são as racing conditions, ou condições de corrida. São situações em que vários processos ou threads que estão rodando em paralelo competem pelo mesmo recurso, causando problemas e bugs que podem se tornar bem destrutivos.

(mais…)

Threads em C++ – Parte 1

Thread é um assunto importante em qualquer linguagem moderna. Atualmente é muito comum encontrar desktops com múltiplos núcleos, isso sem contar os servidores que há décadas contam com múltiplos processadores. Por conta disso sistemas capazes de tirar proveito dos múltiplos núcleos e/ou processadores são muito relevantes.

(mais…)

STL Algorithms: Mínimos e Máximos

É normal precisar selecionar o mínimo e o máximo de um conjunto de dados, e a STL conta com funções específicas para determinar mínimos e máximos, alguns referem-se a valores discretos, outros a faixas de valores em containers.

(mais…)

STL Algorithms: Permutações

As funções de permutações do STL são utilizadas para criar permutações de um conjunto de dados, ou seja exibir, uma a uma, todas as possibilidades de distribuição de dados. Pode ser muito útil em diversa aplicações.

(mais…)

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…)

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…)