Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Boost.Range入門

2,366 views

Published on

高専カンファ 2010秋 in 東京で発表したときのものです。

Published in: Technology
  • Be the first to comment

Boost.Range入門

  1. 1. Boost.Range入門H.22/10/02Egtra高専カンファ 2010秋 in 東京
  2. 2. まとめ• std::sort(v.begin(), v.end()); – これが…… ↓• boost::sort(v); – こう書けるようになります!というお話
  3. 3. 自己紹介• Egtra (20)• 出身: 東京工業高等専門学校 情報工学科• Twitter: @egtra
  4. 4. std::sort• ソートする関数std::sort – std::vector<int> v = {42, -78, 15}; – std::sort(v.begin(), v.end()); – // vの中は-78, 15, 42になる。• でもなんで.begin()と.end()? – じゃまくさいだけでしょ
  5. 5. そこでBoost.Range• #incldude <boost/range/algorithm.hpp>• boost::sort(v);• std::hoge(x.begin(), x.end(), …);• →boost::hoge(x, …); – <algorithm>と<numeric> すべてあります
  6. 6. Range• std::sortではイテレータを渡した• boost::sortに渡すのは“Range” – STLコンテナだけではない
  7. 7. Rangeであるもの• STLコンテナ – vector, deque, list, set, map, ……• 配列• iterator_range• boost::array• ……
  8. 8. Rangeであるもの (2)• これもOK! – int a[] = {2, 3, 1}; – boost::sort(a);
  9. 9. Iterator• ある位置を指す begin end
  10. 10. Range• ある範囲 Range
  11. 11. Iterator ↔ Range• RangeからIteratorを取り出す – begin = boost::begin(r); – end = boost::end(r);• IteratorからRangeを作る – r = boost::make_iterator_range( begin, end);
  12. 12. Boost.Rangeとは• Range concept implementation• Renge Adaptors• Range Algorithm• Provied Ranges• Utilities
  13. 13. • <algorithm>と<numeric>全関数網羅
  14. 14. さっそく使ってみる(追記:発表の際は黒板にいくつか例を書いていました)
  15. 15. おまけ残り時間の許すところまで進みます。
  16. 16. Boost.Rangeに 入門するまで あと一歩

×