Compiler or IDE?
I'm pretty sure you mean IDE. I think most people use Visual Studio, for good reason. C++ and C are Microsoft languages, VS was made by Microsoft.
Another popular one is Code::Blocks. I didn't use it much but I tried writing in it. You need to download the compiler along with it in order for your programs to work. Which means you also have to set the compiler in your Code::Blocks settings.
As for learning/practicing get a book. You can learn on a website like cplusplus or some other site, or you can watch youtube videos, best answer though is probably to get a book. If you google "C++ book" the second link down (right after amazon) is "The Definitive C++ Book Guide and List" which pretty much has THE recommended compilation of best books to read to learn.
I don't think I'm allowed to link to other sites so I'll just copy/paste the first few
Beginner
Introductory, no previous programming experience
- Programming: Principles and Practice Using C++ (Bjarne Stroustrup) (updated for C++11/C++14) An introduction to programming using C++ by the creator of the language. A good read, that assumes no previous programming experience, but is not only for beginners.
Introductory, with previous programming experience
- C++ Primer * (Stanley Lippman, Josée Lajoie, and Barbara E. Moo) (updated for C++11) Coming at 1k pages, this is a very thorough introduction into C++ that covers just about everything in the language in a very accessible format and in great detail. The fifth edition (released August 16, 2012) covers C++11. [Review]
- A Tour of C++ (Bjarne Stroustrup) The "tour" is a quick (about 180 pages and 14 chapters) tutorial overview of all of standard C++ (language and standard library, and using C++11) at a moderately high level for people who already know C++ or at least are experienced programmers. This book is an extended version of the material that constitutes Chapters 2-5 of The C++ Programming Language, 4th edition.
- Accelerated C++ (Andrew Koenig and Barbara Moo) This basically covers the same ground as the C++ Primer, but does so on a fourth of its space. This is largely because it does not attempt to be an introduction to programming, but an introduction to C++ for people who've previously programmed in some other language. It has a steeper learning curve, but, for those who can cope with this, it is a very compact introduction into the language. (Historically, it broke new ground by being the first beginner's book to use a modern approach at teaching the language.) [Review]
- Thinking in C++ (Bruce Eckel) Two volumes; is a tutorial style free set of intro level books. Downloads: vol 1, vol 2. Unfortunately they’re marred by a number of trivial errors (e.g. maintaining that temporaries are automatically const), with no official errata list. A partial 3rd party errata list is available at (https://www.computersciencelab.com/Eckel.htm), but it’s apparently not maintained.
I personally am reading C++ Primer. 1k page book and it has gone over a lot of the basic level stuff,
in depth. Giving a good understanding of how things work. And because of that, I feel like I understand the language a lot better.
Hopefully that answered your question.