Author: Shinji Chikugi
C++で面白いライブラリがあったので紹介します。
LINQって何?
LINQ(統合言語クエリ)はC#の機能でコンテナに対してクエリを発行して結果を抽出します。 詳細はMSDNのドキュメントを参照してください。 https://docs.microsoft.com/ja-jp/dotnet/csharp/linq/
LINQ for C++
LINQ for C++はこの、LINQをC++で使用できるようにしたライブラリです。
https://archive.codeplex.com/?p=cpplinq
使い方も簡単で、GitHubで公開されているヘッダファイルをインクルードするだけです。
https://github.com/mrange/cpplinq
では、実際に使ってみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
#pragma hdrstop #pragma argsused #ifdef _WIN32 #include <tchar.h> #else typedef char _TCHAR; #define _tmain main #endif #include <stdio.h> #include <iostream> #include "CppLinq/cpplinq.hpp" int computes_a_sum () { using namespace cpplinq; int ints[] = {3,1,4,1,5,9,2,6,5,4}; return from_array (ints) >> where ([](int i) {return i%2 ==0;}) // 偶数を抽出する >> sum () // 抽出した値を合計する ; } int _tmain(int argc, _TCHAR* argv[]) { std::cout << computes_a_sum() << std::endl; return 0; } |
C++Builderでビルドしてみますが、C++11の機能を使っているので、[プロジェクト|オプション|C++コンパイラ]で「従来のBorlandコンパイラの使用」のチェックを外してください。
実行結果です。
このように配列から偶数を抽出してその合計が出力されました。新しいC++コンパイラを使用することによって沢山のライブラリも使用できるようになりました。コンパイラ自体も10.2.3のが公開されていますので、是非ともお試し下さい。
2018年4月23日~5月4日までの月~金曜に毎日ブログを更新。Delphi / C++Builderに関する技術記事からエンジニアの日常まで、さまざまな話題を投稿します。お楽しみに! 日本人スタッフブログを一覧表示できる、こちらのページをブックマークしてください。 |
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition