3.C 11中提到的bind绑定器和function函数对象是如何结合使用的?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1975个文字,预计阅读时间需要8分钟。
cpp绑定器bind1st,使用bind2nd与vector vec;for(int i=0; i <20; i++) { vec.push_back(rand() % 100);}showContainer(vec);sort(vec.begin(), vec.end(), greater());showContainer(vec);// greater(a, b) > 0,less(a, b) <0
绑定器bind1st,bind2ndvector<int> vec;
for(int i=0;i<20;i++){
vec.push_back(rand()%100);
}
showContainer(vec);
sort(vec.begin(),vec.end(),greater<int>());
showContainer(vec);
/*
* greater a>b
* less a<b
* */
//把70按顺序插入到vector容器中
auto it= find_if(vec.begin(), vec.end(), bind1st(greater<int>(),70));//两种绑定器的用法
//auto it= find_if(vec.begin(), vec.end(), bind2nd(less<int>(),70));
if(it!=vec.end()){
vec.insert(it,70);
}
showContainer(vec);
绑定器的实现原理
绑定器其实是函数对象的一个应用!!绑定器+二元函数对象+值=一元函数对象。
本文共计1975个文字,预计阅读时间需要8分钟。
cpp绑定器bind1st,使用bind2nd与vector vec;for(int i=0; i <20; i++) { vec.push_back(rand() % 100);}showContainer(vec);sort(vec.begin(), vec.end(), greater());showContainer(vec);// greater(a, b) > 0,less(a, b) <0
绑定器bind1st,bind2ndvector<int> vec;
for(int i=0;i<20;i++){
vec.push_back(rand()%100);
}
showContainer(vec);
sort(vec.begin(),vec.end(),greater<int>());
showContainer(vec);
/*
* greater a>b
* less a<b
* */
//把70按顺序插入到vector容器中
auto it= find_if(vec.begin(), vec.end(), bind1st(greater<int>(),70));//两种绑定器的用法
//auto it= find_if(vec.begin(), vec.end(), bind2nd(less<int>(),70));
if(it!=vec.end()){
vec.insert(it,70);
}
showContainer(vec);
绑定器的实现原理
绑定器其实是函数对象的一个应用!!绑定器+二元函数对象+值=一元函数对象。

