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.
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.
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....
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.
发布评论
评论(5)
Notepad++:仅限纯Win32 + STL!
Notepad++: pure Win32 + STL only!
请注意,STL 部分包含在 C++ 标准本身中。 这使得 http://www.research.att.com 上列出的大多数产品/~bs/applications.html 有趣。 该列表混合了专有项目和开源项目。
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.
不完全是您问题的答案,但如果您不了解 STL/模板,您会发现基于 STL 的代码有时是,呃...,原始的。
例如,如果下面的代码...
...让您感到毛骨悚然(对我来说确实如此),那么如果浏览一些 STL 密集型代码,您就会大吃一惊。
如果你想学习 STL,单独尝试 STL 的每个类/函数也是一个好主意。 例如,采用 http://www.cplusplus.com/reference/stl/ 并分别使用容器和辅助函数。
较难的部分将出现在标头中。 和<功能>,但这是我个人的观点......
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...
... 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....
并添加到 Araks 答案中。 就像 Notepad++、SQLyog 一样,mySQL 客户端是另一个使用纯 Win32 API 构建的很酷的应用程序,并且还具有 Scintilla 编辑功能成分。 因此它超轻且快速。 源代码可从他们的网站获得。
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.
Boost 库 包含一些可用的最高质量的 C++ 代码,并且严重依赖于 STL。
The Boost library contains some of the highest quality C++ code available, and relies heavily on the STL.