【C++】LINQ for C++の使い方
C++でLINQ( Language-Integrated Query )を使う方法を探してたら、これに辿り着いた。
LINQ for C++とは
LINQと同じような機能を提供するライブラリ。
ダウンロード
使い方
- 上記からダウンロードしたデータの
CppLinqフォルダ内に存在するcpplinq.hppをインクルードする。 rangeオブジェクトを作成する。(from・from_array関数でコンテナを変換する。または、range・repeatなどの関数から作成する。 )rangeオブジェクトに右シフト演算子を用いた上でデータを操作する関数を呼び出す。( メソッドチェーンと同じ形で使用可。 )
サンプル
#include <iostream>
#include "cpplinq.hpp"
int main()
{
using namespace cpplinq;
const int VALUES[] = { 0, 1, 2, 3, 4, 5 };
from_array( VALUES )
>> where ( []( int value ) { return value % 2 == 0; } )
>> for_each ( []( int value ) { std::cout << value << std::endl; } )
;
return 0;
}よく使用する関数
| 名前 | 機能 |
|---|---|
| where | 条件を満たす要素のみに抽出する。 |
| select | 各要素に対して任意の処理をかけた新たな要素群を作成する。 |
| distinct | 重複を除く。 |
| orderby_ascending | 要素を昇順に並び替える。 |
| orderby_descending | 要素を降順に並び替える。 |
| any | 条件を満たす要素が存在するか判断する値を取得する。 |
| all | 全ての要素が条件を満たすか判断する値を取得する。 |
| contains | 指定した要素を含むか判断する値を取得する。 |
| first_or_default | 最初の要素、またはデフォルト値を取得する。 |
| last_or_default | 最後の要素、またはデフォルト値を取得する。 |
| sum | 各要素を合計した値を取得する。 |
| max | 最大値を取得する。 |
| min | 最小値を取得する。 |
| count | 要素数を取得する。 |
| to_vector | std::vectorに変換する。 |
| to_list | std::listに変換する。 |
| for_each | 各要素を順に利用する。 |