tags:

views:

416

answers:

5

I want to learn STL by quick browsing of real project source.

Where can I find a high quality project that uses STL?

+23  A: 

Notepad++: pure Win32 + STL only!

Based on a powerful editing component Scintilla, Notepad++ is written in C++ and uses pure Win32 API and STL which ensures a higher execution speed and smaller program size. By optimizing as many routines as possible without losing user friendliness, Notepad++ is trying to reduce the world carbon dioxide emissions. When using less CPU power, the PC can throttle down and reduce power consumption, resulting in a greener environment.

AraK
I love Notepad++. It is one of the first things I install on a new machine. Plus there is a portable apps version too.
Justin
+1. Notepad++ is my general purpose text editor for well... anything.
Soo Wei Tan
+3  A: 

Note that STL is partly included in the C++ standard itself. That makes most of the products listed at http://www.research.att.com/~bs/applications.html interesting. The list is a mix of proprietary and open source projects.

Vijay Mathew
+2  A: 

Not exactly an answer to your question, but if you have no knowledge of STL/templates, you'll find STL-based code to be sometimes, er..., raw.

For example, if the following code...

std::for_each( s.begin(), s.end(),
   std::bind1st( std::mem_fun( &MyClass::MyMethod ), this ) );

... gives you the creeps (it did, for me), then you're for a bad surprise if browsing some STL intensive code.

If you want to learn STL, trying each and every class/function of STL, separatly, would be a good idea, too. For example, take http://www.cplusplus.com/reference/stl/ and play with both the containers, and the helper functions separately.

The harder one will be in header <algorithm> and <functional>, but this is my personal viewpoint....

paercebal
oh lovely bind syntax... It still gives me a headache too (at least in more complicated cases). I tend to prefer wrapping it in my own functor just to get a sane syntax.
jalf
+1  A: 

And to add onto Araks answer. Just like Notepad++, SQLyog, a mySQL client is another cool App built with pure Win32 API and also has the Scintilla editing component. it is therefore super lightweight and fast. The source code is available from their website.

Steve Obbayi
+1  A: 

The Boost library contains some of the highest quality C++ code available, and relies heavily on the STL.

cdiggins