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

Boost.Range入門

2,069 views
1,970 views

Published on

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

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,069
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

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に 入門するまで あと一歩

×