There are basically two ways. Use the filetype plugin, or use filetype or extension autocommands.
The autocommands (placed in your .vimrc/_vimrc) take the form of either
autocmd Filetype cpp set textwidth=100
or
autocmd BufRead *.cpp,*.h,*.c set textwidth=100
(Obviously set textwidth=100
can be replaced with any other command)
The better solution, particularly if you have alot of custom commands for a filetype, is to use the files ~/.vim/after/ftplugin/<filetype>.vim
for each filetype. Commands in those files will be executed after loading a file of the given type.