You are here:



I just started learning c++ and there are an overwhelming amount libraries and I was wondering whether I should memorize all of it or what. I was also wondering what kind of IDE you use?

I am not sure exactly how broadly you mean when you say "there are an overwhelming amount libraries".

If you mean there are a lot of parts to the standard C++ library generally shipped with compilers then although you should not necessarily memorise all of it you should definitely become nicely familiar with its facilities and approach to doing things. You should also have access to good C++ standard library references so you can look up the fine print when needed. A good general reference is "The C++ Standard Library a Tutorial and Reference" by Nicolai M. Josuttis. As the title implies it also doubles as something of a tutorial.

You should also note which parts of the C++ standard library are just C++ and which parts are 'inherited' from the C standard library - often there are C and C++ ways for doing the same thing (to allow C++ to build C code or code that was originally C) and you should generally pick the C++ way. In some parts - maths functions for example - the C++ way is pretty much the same as the C way.

If you mean C++ libraries in general - i.e. all libraries produced written in C++ and designed to be used from C++ - then no you definitely do _not_ need to learn them all inside out - there are so many it would be an impossible task. However, when you find you require a set of facilities it is usually a good idea to see if there are existing libraries out there  that can fulfil the requirements - a C++ library if possible or a C library otherwise - Google, Bing, Yahoo etc. are your friends here. Such libraries generally support a subset of compilers and platforms and come with a variety of license types. Some may be totally free to use, others free but impose restrictions on use with your code (e.g. the GPL) which may preclude their use, others may be pay for only and use by one person or on one machine etc. If such a library requires building and is not distributed in binary form for your compiler/platform then you may need to build it from the source code.

As to the IDE I use: when developing for Microsoft Windows using the Microsoft Visual C++ compiler I use the Microsoft Visual Studio IDE. If targeting Linux using the GNU g++ compiler then I might use Eclipse CDT. Sometimes (on Linux and similar) I might not use an IDE at all if the code is very small - a single file for example. I have had jobs working on very large projects that did not use an IDE (usually on UNIX systems) - in such cases I usually used a powerful editor such as Emacs (others prefer vi) to edit and sometimes build the code.

Note that you do not in fact require an IDE to create and build programs in C++. You require a text editor and the command line tools. IDEs can make the development process easier however!  


All Answers

Answers by Expert:

Ask Experts


Ralph McArdell


I am a software developer with more than 15 years C++ experience and over 25 years experience developing a wide variety of applications for Windows NT/2000/XP, UNIX, Linux and other platforms. I can help with basic to advanced C++, C (although I do not write just-C much if at all these days so maybe ask in the C section about purely C matters), software development and many platform specific and system development problems.


My career started in the mid 1980s working as a batch process operator for the now defunct Inner London Education Authority, working on Prime mini computers. I then moved into the role of Programmer / Analyst, also on the Primes, then into technical support and finally into the micro computing section, using a variety of 16 and 8 bit machines. Following the demise of the ILEA I worked for a small company, now gone, called Hodos. I worked on a part task train simulator using C and the Intel DVI (Digital Video Interactive) - the hardware based predecessor to Indeo. Other projects included a CGI based train simulator (different goals to the first), and various other projects in C and Visual Basic (er, version 1 that is). When Hodos went into receivership I went freelance and finally managed to start working in C++. I initially had contracts working on train simulators (surprise) and multimedia - I worked on many of the Dorling Kindersley CD-ROM titles and wrote the screensaver games for the Wallace and Gromit Cracking Animator CD. My more recent contracts have been more traditionally IT based, working predominately in C++ on MS Windows NT, 2000. XP, Linux and UN*X. These projects have had wide ranging additional skill sets including system analysis and design, databases and SQL in various guises, C#, client server and remoting, cross porting applications between platforms and various client development processes. I have an interest in the development of the C++ core language and libraries and try to keep up with at least some of the papers on the ISO C++ Standard Committee site at


©2016 All rights reserved.