Ciao! beh, prima di tutto una precisazione: quello a cui tu ti riferisci (dal momento che citi visual studio) immagino sia un IDE? In ogni caso, se cerchi effettivamente un compilatore vai con gcc (il piu' diffuso) oppure clang (anche lui ottimo).
Se invece come immagino intendi un IDE (l'ambiente completo di programmazione, editor, debugger, compilatore, ecc..), beh le cose sono un po' diverse sotto Linux. E' vero che ci sono diversi IDE che puoi usare (Eclipse, Netbeans i primi che mi vengono in mente), ma sotto Linux in linea di massima le cose si fanno diversamente, ovvero invece di avere un unico IDE, impari ad usare separatamente tutti gli strumenti che gli IDE raggruppano in un unico pacchetto. Il mio consiglio e' di impiegare del tempo in piu' per conoscere questi tools di base, che una volta imparati di daranno una maggiore flessibilita' e produttivita' (almeno per me, ma anche per molti altri). Detto questo, io uso come editor Vim, gcc compiler e gdb per debugging (ovviamente con corredo di make e bash scripting). So che sembra un lavoro decisamente maggiore, ma fidati che dopo l'ostacolo iniziale paga veramente molto.
Detto questo, la scelta dipende molto anche dalle tue conoscenze di programmazione in generale. Se ti destreggi gia' con altri linguaggi OO e vuoi semplicemente imparare C++, allora ti consiglio quanto detto sopra, se invece hai conoscenze ridotte sulla programmazione ad oggetti in generale (e quindi non si tratta semplicemente di imparare una nuova sintassi, ma di imparare/approfondire un paradigma di programmazione) allora forse sarebbe meglio un ambiete assistito per iniziare, ed addentrarsi in gcc, gdb & company piu' avanti quando avrai assimilato. In questo caso, le alternative sono Eclipse, Netbeans e simili sotto Linux, oppure Visual studio/Dev c++ per win. Le mie conoscenze sono piuttosto limitate in questo campo, ma da quel che ho letto in giro si dice che Visual Studio sia una spanna sopra a tutti.
Saluti ed in bocca al lupo