Lab C++

Codificação Eficiente

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

Tags: c++

C++: História e Versões

Semana passada falamos sobre a história e as versões da linguagem C, hoje vamos falar sobre C++. Assim como a linguagem C, muitos novatos acham que a linguagem C++ é desatualizada e pouco utilizada, mas não sabe que é uma das linguagens mais utilizadas do mundo, e peça chave no desenvolvimento de muitos softwares recentemente desenvolvidos.

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

Smart Pointers para C++ – Weak Pointers

Smart Pointers foi um conceito adicionado no C++11 para reduzir os riscos inerentes ao desenvolvimento utilizando ponteiros, como por exemplo referência cíclica entre atributos. No post de hoje vamos aprender como os Weak Pointers podem resolver esse problema quando utilizando Shared Pointers.

(mais…)

Smart Pointers para C++ – Shared Pointers

Smart Pointers foi um conceito adicionado no C++11 para reduzir os riscos inerentes ao desenvolvimento utilizando ponteiros, como por exemplo liberar um objeto que ainda precisa ser utilizado. No post de hoje vamos falar sobre Shared Pointers.

(mais…)

Smart Pointers para C++ – Unique Pointer

Smart Pointers foi um conceito adicionado no C++11 para reduzir os riscos inerentes ao desenvolvimento utilizando ponteiros, como por exemplo vazamento de memória. No post de hoje vamos falar sobre Unique Pointers.

(mais…)

Função que Retorna Dois Valores

Há algum tempo me deparei com uma dúvida no Stack Overflow, um usuário perguntando se havia como fazer uma função que retornedois valores em C/C++. Tem como, e tem mais de uma forma de fazer.

(mais…)

Parser .csv em C e C++

Arquivos .csv são muito utilizados para troca de dados, por conta da sua simplicidade de geração e interpretação. A rigor são linhas de texto com campos separadas por vírgulas (Comma-Separated Values – valores separados por vírgulas), mas é muito comum utilizar separação com ponto-e-vírgula.

(mais…)

stdin, stdout e stderror

Em C e C++ temos três streams padrão, um de entrada, stdin, e dois de saída, stdout e stderr, respectivamente saída e erro. Cada um pode ser redirecionado individualmente facilitando muito as coisas. Vamos aprender a redirecionar as saídas, e como utilizá-las da melhor forma.

(mais…)