Obra: Referência rápida de C++
linguagem preprocessador comentário até final da linha comentário de várias linhas include insere arquivo cabeçalho padrão include myfile insere arquivo do diretório corrente define some text substitui por some text define substitui com define some text continução de linha undef remove definição if defined compilação condicional ifdef else opcional ifndef ou if defined endif necessário após if ifdef literais xff inteiros decimal octal hex int fffffffl inteiros de bit long números do tipo double real caracter literal octal hex char nova linha barra invertida aspas aspas dupla string série de caracteres terminando com nova linha hello world conecta as strings série de caracteres true false constantes boleanas declarações int declara como inteiro com valor indefinido int declara inicializa para short long inteiros usuais de ou bits char normalmente caracter de bits unsigned char signed char char pode ou não possuir sinal unsigned long xffffffffl short int long possuem sinal float double número real de precisão simples ou dupla nunca sem sinal bool true verdadeiro ou falso pode se usar int or int declarações múltiplas int array série de inteiros até int inicializa array série ou int array de arrays de inteiros char hello string elementos incluindo int um ponteiro de um inteiro endereço de memória char hello aponta para um array sem nome contendo hello void null endereço de memória que representa vazio null int referência sinônimo de int enum weekend sat sun weekend um novo tipo com valores sat sun enum weekend day day variável do tipo weekend enum weekend sat sun representação explícita como int enum sat sun day enum anônimo typedef string char string significa char typedef double point define um double const int constantes devem ser inicializadas não devem ser atribuídas const int conteúdo de elementos de são constantes int const mas não seu conteúdo constante const int const seu conteúdo são constantes const int cr cr não pode ser utilizado para alterar valor de classes de armazenamento int automático memória existe somente no escopo da função static int vida global memória alocada para existe enquanto programa rodar extern int apenas informação declaração variável foi definida em outro lugar instruções toda expressão uma instrução int declarações são instruções instrução vazia um bloco uma única instrução int escopo do bloco vai do começo até final em declaração precede instrução if se verdadeiro diferente de executa else if se não opcional else se não não opcional while repete ou mais vezes enquanto verdadeiro for equivalente while do while equivalente while switch tem que ser int case if deve ser const salte para cá case else if salte para cá default else salte para cá optional break sai do loop while do ou for loop ou switch continue salta para próxima iteração while do ou for loop return retorna como resposta da função try catch se despeja então executa catch se despeja outra coisa então executa funções int int int uma função recebendo dois va
executa catch se despeja outra coisa então executa funções int int int uma função recebendo dois valores int retornando um int void um procedimento que não recebe nenhum argumento void int equivalente valor padrão de retorno int inline otimizado para velocidade statements definição da função deve ser global operator se do tipo chama operator operator chama função operator operator int pós incremento ou pós decremento parâmetro ignorado extern void foi compilada em os parâmetros valores de retorno de uma função podem ser de qualquer tipo int float etc uma função deve ser declarada ou definida antes de ser utilizada ela pode ser declarada primeiro depois definida todo programa consiste de um conjunto de declarações de variáveis globais um conjunto de definições de funções possivelmente em diferentes arquivos uma das funções deve ser int main statements ou int main int argc char argv statements argv um array contendo argc strings que vem da linha de comando por convenção main retorna valor se tudo correu bem ou valor maior para erros funções com diferentes argumentos podem receber mesmo nome overloading ou operadores exceto podem ser sobrecarregados ordem de precendência não afetada novos operadores não podem ser criados expressões operadores são agrupados por precedência sendo primeiro maior operadores unários de atribuição são executados da direita para esquerda todos os outros são executados da esquerda para direita precendência não afeta ordem de execução indefinida não existe teste de tamanho dos arrays para ponteiros inválidos etc nome definido na classe nome definido no namespace nome global membro da struct ou class membro da struct ou class apontada por ai ésimo elemento da array chamada da função passando os argumentos objeto da classe inicializado com incrementa de retorna valor original de postfix decrementa de retorna valor original de typeid tipo de typeid igual typeid se um dynamic_cast converte para checado em tempo de execução static_cast converte para não checado em tempo de execução interpeta os bits de como se fosse const_cast converte para tipo mas não const sizeof número de bytes usado por sizeof número de bytes para representar tipo incrementa de retorna valor novo de prefix decrementa de retorna valor novo de complemento bit bit de verdadeiro se senão falso menos unário mais unário default endereço de conteúdo do endereço de igual new retorna endereço do novo objeto alocado new endereço do novo objeto alocado inicializado com parâmetros new tn endereço do novo array de elementos alocados delete destrói livra elemento apontado por delete destrói livra array de objetos apontados por converte para obsoleto use multiplicação divisão integers round toward módulo resultado possui sinal de adição ou xy subtração ou número de elementos de para shifted bits para esqureda pow shifted bits direita pow menor que menor ou igual maior que maior ou igual igualdade desigualdade and bit bit bit bit ou or exclusivo bit bit ou or executa se só
aior ou igual igualdade desigualdade and bit bit bit bit ou or exclusivo bit bit ou or executa se só se diferente de ou executa se só se falso atribui retorna valor de também se verdade diferente de zero senão throw despeja exceção aborta se ela não for capturada executa retorna classes class um novo tipo private seção acessível somente para as funções membros da classe protected acessível às classes derivadas de public acessível todos int dado membro de void fução membro de void return fução membro embutida inline void const função não altera os dados membros int operator int significa operator int operator significa operator construtor com lista de inicialização const construtor de cópia operator const return this operador de inicialização destrutor rotina de limpeza automática explicit int permite mas não operator int const return operador de conversão void operator std ostream out const permite string void operator permite friend void função global possui acesso parte privada friend class membros de tem acesso privado static int dados que todos os objetos tem em comum static void código em comum pode acessar mas não class classe interior typedef int significa int void código para função membro da classe this esse endereço de si mesmo significa int inicialização dos membros estáticos required chamada membro estático struct equivalente class public virtual void pode ser redeclarado na classe derivada virtual void deve ser redeclarado na classe derivada puramente virtual class public classe derivada herda todos os membros da classe class private os membros herdados de tornam se privados class public public herança múltipla class public virtual classe derivada de possui diretamente std istream operator std istream is permite string std ostream operator permite string todas as classes possuem um construtor de cópia operador de inicialização destrutor que executam as operações correspondentes de cada dado membro de cada classe base como mostrado acima existe ainda construtor padrão sem argumentos necessário para criar arrays se classe não possui construtor construtores atribuidores destrutores não são herdados classes parametrizadas templates template função definida para todos os tipos template class classe com construtor do tipo de um construtor template definição de construtor um objeto do tipo de int template classe parametrizada com classe padrão espaços de nome namespace namespace class esconde nome usa dentro do namespace using namespace faz visivel sem uso de biblioteca padrão somente as funções mais usadas estão listadas os arquivos cabeçalios sem estão no namespace std stdio cstdio input output file fopen filename abre para leitura null caso erro modo pode ser escrita append update rb binário fclose fecha arquivo fprintf imprime outras convenções ld int width unsigned int long left just lx octal hex hex long hex float or double use either or char char sprintf imprime em um array de char printf imprime em stdout terminal se não redireciona
r char char sprintf imprime em um array de char printf imprime em stdout terminal se não redirecionado fprintf stderr imprime para saída de erro padrão não redirecionado getc lê um char como um int int ou eof end of file de ungetc coloca de volta em flush força buffer ser escrito em fseek seek_set posiciona arquivo binário em ftell posição de se houver erro rewind fseek seek_set clearerr feof está no final do arquivo ferror erro em perror imprime char no erro padrão clearerr limpa código de erro de remove filename apaga arquivo retorna se ok rename old new renomeia arquivo retorna se ok tmpfile cria arquivo temporário no modo wb tmpnam coloca um nome único em char sl_tmpnam stdlib cstdlib funções variadas atof atol atoi converte char para float long int rand srand seed inteiro aleatório de até rand_max reinicia reset rand void malloc aloca bytes obsoleto use new free libera memória obsoleto use delete exit termina programa retornando valor system executa comando do os depende do sistema getenv path variável de ambiente ou depende do sistema abs labs ln valor absoluto como int long string cstring funções para char strings são do tipo char com um no ultimo elemento usado strcpy dst src copia string não verifica tamanho strcat dst src concatena to dst não verifica tamanho strcmp compara se strncpy dst src copia ate caracteres também strncat strncmp strlen tamanho de sem contar com strchr strrchr endereço do primeiro ultimo caractere em ou strstr sub endereço do primeiro substring em ou mem funções são para qualquer tipo void do tamanho de bytes memmove dst src copia bytes de src para dst memcmp compara bytes como em strcmp memchr encontra primeiro byte em retorna endereco ou memset atribui bytes de para valor ctype cctype tipos de caractere isalnum digito isalpha isdigit letra digito islower isupper minuscula maiuscula tolower toupper converte para maiuscula minuscula math cmath floating point math sin cos tan funções trigonometricas double em rad asin acos atan inversas atan atan sinh cosh tanh hyperbolicas exp log log elevado log base log base pow sqrt elevado raiz quadrada ceil floor arredondamento para cima ou para baixo double abs fmod valor absoluto módulo time ctime tempo clock clocks_per_sec tempo em segundos desde que programa começou time_t time tempo absoluto em segundos ou se for desconhecido tm gmtime se uct não está disponivel senão tm_x onde sec min hour mday mon year wday yday isdst asctime day mon dd hh mm ss yyyy asctime localtime mesmo formato hora local assert cassert auxiliar de depuração assert se falso imprime mensagem aborta define ndebug antes include desliga assert new new assintente para falta de memória set_new_handler handler muda comportamento quando acaba memória void handler void throw bad_alloc padrão iostream iostream substitui stdio cin lê qualquer tipo de stdin entrada padrão cout escreve uma linha em stdout saida padrão cerr escreve stderr espera todos os comandos serem eviados cin get getchar cin get lê char cin
adrão cerr escreve stderr espera todos os comandos serem eviados cin get getchar cin get lê char cin getline lê linha em char sn até default if cin bom estado não eof para ler gravar qualquer tipo istream operator istream return ostream operator abre arquivo de texto para leitura if testa se aberto se entrada valida lê objeto de arquivo get lê char ou linha getline lê linha no string sn ofstream filename abre arquivo para escrita if escreve no arquivo iomanip iomanip foramatação da saída cout imprime string cadeia de caracteres de tamanho variado string hello cria strings size size número de caracteres world concatenação hello world comparação também etc substr substring de tamanho começando em c_str converte para const char getline cin lê linha termiando em vector array pilha de tamanho variável com alocação de memória vector são int tamanho padrão size número de elementos push_back aumenta tamanho para back pop_back decrementa tamanho em front crash não checa os limites at como mas despeja out_of_range for vector iterator begin end todos os elementos de recebem vector begin end cópia de vector cn inicializa para vector inicializado de print vector int const int sizeof sizeof int sort copy cout the output is deque array pilha fila deque como vector mas também suporta push_front coloca em empurra os outros elementos pop_front remove empurra os outros elementos utility pair pair hello estrutura de elementos first hello second usa ordem lexicográfica na comparação map array associativa map mapeia de string para int hello adiciona ou substitui elemento hello for map iterator begin end cout algorithm coleção de algoritmos que atuam sobre iteradores min max menor maior de qualquer tipo com swap troca os valores das variáveis sort ordena array an usando operador sort begin end ordena vector ou deque set struct ltstr bool operator const char const char const return strcmp set set cout cout cout cout cout cout ltstr cout cout ltstr cout cout cout may also legally point to domore comparing function pointers if pt function check if initialized if pt function doit printf pointer points to doit else printf pointer not initialized if pt constmember tmyclass domore cout pt member instance is pointer delete instance how to pass function pointer as an argument is pointer to function which returns an int and takes float and two char void passptr int pt func float char char int result pt func call using function pointer cout specifies which function to return float getptr const char opcode float float if opcode return plus else return minus default if invalid operator was passed solution using typedef solution using typedef define pointer to function which is taking two floats and returns float typedef float pt func float float function takes char and returns function pointer which is defined with the typedef above specifies which function to return pt func getptr const char opcode if opcode return plus else return minus default if invalid operator was passed exec
onst char opcode if opcode return plus else return minus default if invalid operator was passed execute example code void cout and are arrays with pointers to functions which return an int and take float and two char first way using the typedef pt function funcarr null nd way directly defining the array int funcarr float char char null assign the function address doit and domore are suitable functions like defined above in funcarr funcarr doit funcarr funcarr domore more assignments calling function using an index to address the function pointer printf funcarr short form printf funcarr correct way of calling printf funcarr printf funcarr type definition pt member now can be used as type typedef int tmyclass pt member float char char illustrate how to work with an array of member function pointers void cout and are arrays with pointers to member functions which return an int and take float and two char first way using the typedef pt member funcarr null nd way of directly defining the array int tmyclass funcarr float char char null assign the function address doit and domore are suitable member functions of class tmyclass like defined above in funcarr funcarr nd use an array of function pointers in and the first way uses typedef the second way directly defines the array it up to you which way you prefer tmyclass doit funcarr funcarr tmyclass domore more assignments calling function using an index to address the member function pointer note an instance of tmyclass is needed to call the member functions tmyclass instance cout using namespace std class egg static egg int egg int ii ii egg const egg prevent copy construction public static egg instance return int val const return egg egg int main egg error can create an egg you can access the single instance cout val class singleton private singleton singleton const singleton operator const singleton src protected public static instance ptmp null try static tvar ptmp tvar catch false ptmp null return ptmp teste typedef singleton my_singleton endif singleton_h reading text file include include include int main char buffer ifstream examplefile example txt if examplefile is_open cout include include include include void split const string in const char spliter vector out out clear vector indices indices push_back find spliters for size_t int main ofstream examplefile example txt if examplefile is_open examplefile include const char filename example txt int main long ifstream file filename ios in ios binary file tellg file seekg ios end file tellg file close cout include const char filename example txt int main char buffer long size ifstream file filename ios in ios binary ios ate size file tellg file seekg ios beg buffer new char size file read buffer size file close cout include const char filename example txt int main const char data get_buffer long len get_buffer_size ofstream outfile filename ios out ios binary if outfile is_open outfile write data len outfile close arvore binária typedef struct celula
binary if outfile is_open outfile write data len outfile close arvore binária typedef struct celula arvore struct celula arvore pai int chave arvore esq arvore dir recebe raiz de uma árvore binária imprime as chaves das celulas em ordem endorder void erd arvore if null erd esq printf chave erd dir endorder linear while while null pt esq if break printf chave dir recebe endereço de uma árvore binária não vazia devolve endereço da primeira célula na ordem arvore primeira arvore while esq null esq return recebe endereço de uma célula devolve endereço da célula seguinte na ordem arvore seguinte arvore if dir null arvore dir while esq null esq return while pai null pai dir pai return pai devolve altura da árvore binária cuja raiz int altura arvore if null return altura de árvore vazia else int he altura esq int hd altura dir if he define flipdword xff create raw file to photoshop read std fstream myfile filename std ios out std ios binary std ios trunc char int maxfreq getmaxfrequence for int include void get_args int argc char argv int a_value float b_value int start at to skip the command name for in_m in_m in_m in_m cross product float float float axb axb axb axb using gluunproject opengl gluunproject glut have been using opengl since long time and fundamental problem many would like is how to find out where the user clicked in the world given the mouse co ordinates opengl and glu functions can be used to effectively solve this problem since could not find any good tutorials regarding this thought put up one by myself there is simple function that glu provides it called gluunproject this function takes in arguments which include the window co ordinates modelview matrix projection matrix viewport and for storing the world co ordinates of that particular point dont get worried about window co ordinate which is given to this function this value is obtained by using glreadpixels viewport gl_float we need to use viewport this is equivalent to windowheight where are the mouse location co ordinates instead of just because the glut window has origin at top left corner where as opengl glreadpixels has the origin at bottom left corner once you get the value of the window using glreadpixels we can pass the window values to the gluunproject and get the world co ordinates in the example here red cube is moved to the location where the user clicks on the green plane double objx objy objz the drawing function glutdisplayfunc void display clearing the screen with black and clearing the depth buffer glclear the green polygon glbegin gl_polygon glcolor glvertex glvertex glvertex glvertex glend store the current transformation matrix and translate the cube to the world location glpushmatrix glcolor gltranslatef objx objy objz glutsolidcube glpopmatrix glflush glutswapbuffers the function that handles the mouse clicks glutmousefunc void mouse int button int state int int double modelview projection int viewport float get the projection matrix glgetdoublev projection
nt double modelview projection int viewport float get the projection matrix glgetdoublev projection get the modelview matrix glgetdoublev modelview get the viewport glgetintegerv gl_viewport viewport read the window co ordinate the value on that point in unit cube glreadpixels viewport gl_float unproject the window co ordinates to find the world co ordinates gluunproject viewport modelview projection viewport objx objy objz