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…)Tags: c++
Já trabalhei em várias equipes, algumas tinham um cuidado extremo com a gestão da alocação de memória, outras não se preocupavam tanto assim. Independente da atitude da equipe é importante saber como evitar vazamentos, e quais as consequências.
Para quem não sabe o que é vazamento de memória: é a manutenção de memória alocada dinamicamente após seu uso de forma que não possa ser recuperada, utilizada ou desalocada. O mesmo pode-se dizer de outros recursos. O programa funciona perfeitamente, porém em algum momento a memória acaba, e aí começam os problemas.
(mais…)Trabalhei com uma equipe que tinha o costume de fazer traces da seguinte forma:
char *logtrace = ::getenv("LOGTRACE");
// ...
if (logtrace) std::cout << "*** Starting CUtil::promoteSale ***" << std::endl
if (logtrace) std::cout << "* Arg saleID: " << saleID << std::endl;
if (logtrace) std::cout << "* Arg owner: " << owner << std::endl;
(mais…)
Já vi muita gente que sabe orientação a objetos, programa bem em C++, usa STL, mas na hora de formatar a saída utiliza printf.
Quem aprendeu C antes de aprender C++ normalmente prefere utilizar printf para formatar a saída. Com printf vai bem, mas e se a saída for num arquivo? E se os padrões de desenvolvimento da equipe exigir a utilização de std::cout? Pra isso que devemos conhecer as funções de formatação do iomanip.
(mais…)