Lab C++

Codificação Eficiente

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

Categoria: Programação C/C++

C++20: Comparação Ternária

Uma novidade muito simples e interessante no C++20 é a comparação ternária. Quem programa linguagem C já conhecia há muito tipo este tipo de comparação, mas em outro contexto de comparação. A novidade facilita muito em determinadas situações.

(mais…)

A Simplicidade do if-elseif

Mais um caso que didaticamente faz muito sentido, mas a realidade é um pouco diferente. Como a maioria reagiria à afirmação de que não existe a estrutura if-elseif na linguagem C? Pois não existe mesmo e é fácil de comprovar.

(mais…)

Pra Que Usar break no switch?

Apesar de não ser único das linguagens C e C++, a forma que a estrutura de controle de fluxo switch funciona é um pouco diferente de quando aprendemos algorítmos, ou quando aprendemos linguagens mais simples. Este post vai explicar como exatamente funciona o switch, e por que é necessário utilizar o break no switch? Será que é?

(mais…)

Recuperar Dados da Internet com libcURL

Apesar de não ser muito comum utilizar linguagem C/C++ para a recuperação de dados na internet, às vezes é necessário, seja por questões de performance, de arquitetura, ou até mesmo requisitos de projeto. E nestes casos libcURL é a principal biblioteca para acesso a internet.

No exemplo de hoje será utilizado código em linguagem C, uma vez que devido a natureza da libcURL a conversão para C++ é relativamente simples.

(mais…)

C++11: Métodos Modernos da std::string

No post de hoje vamos citar os novos métodos da std::string no C++11, alguns são muito bacanas e implementam funcionalidades populares em outras linguagens. Vamos avaliá-las conforme a versão em que estão disponível com exemplos.

(mais…)

std::pair x std::tuple

std::pair já existe há um bom tempo em C++, é a estrutura de dados que recupera os dados de um std::map através de iterators. Já std::tuple foi adicionado no C++11 e apesar de armazenar a mesma coisa é uma classe muito mais completa. Vamos conhecer a diferença entre os dois.

(mais…)

4 Formas de Loops For em C++

Loop é uma construção básica em uma linguagem de programação estruturada, e o loop for uma das formas mais comuns. Em C++ temos 5 formas de implementar loops for.

(mais…)

STL Algorithms: Embaralhando Containers com std::shuffle

Normalmente estudamos algoritmos para ordenar vetores, mas dificilmente para embaralhar. Apesar disso existem dois STL Algorithms para embaralhar containers não ordenados. Obviamente esses algoritmos não funcionam com containers ordenados, como std::map, std::set ou std::list, por exemplo, mas funciona muito bem com std::vector, ou mesmo arrays padrão C.

(mais…)

Casting com C++

Casting é a conversão entre tipos de valores. Em C++ a conversão de valores é um pouco mais complicada que em C porque existe a questão da herança de classes, por conta disso temos outros quatro tipo de cast em C++: dynamic_cast, static_cast, const_cast e reinterpret_cast.

(mais…)

Macros Pré-Definidas em C e C++

Tanto a linguagem C, como a linguagem C++, contam com um conjunto de macros pré-definidas. Elas estão resolvidas em tempo de pré-processamento, portanto antes mesmo da compilação, e podem ser muito úteis. Vamos conhecê-las e estudar utilidades para o dia-a-dia.

(mais…)