http://blog.csdn.net/hzqhbc/article/details/7497646
升序排列的容器:
iterator upper_bound( const key_type &key ):返回一个迭代器,指向
键值>
key的第一个元素。
★降序排列的容器:
iterator upper_bound( const key_type &key ):返回一个迭代器,指向
键值<
key的第一个元素。
插入的时候只要选择好插入的位置就排序了
- #include <vector>
- #include <algorithm>
- class CEntity
- {
- public:
- CEntity( int nValue=0 ):m_nValue(nValue)
- {
- }
- int m_nValue;
- };
- class CLess
- {
- public:
- bool operator()( const CEntity& lh, const CEntity& rh )
- {
- //这里还可以进行一些自定义的判断方式
- return lh.m_nValue < rh.m_nValue;
- }
- };
- int _tmain(int argc, _TCHAR* argv[])
- {
- std::vector<CEntity> vEntity1; // 插入排序
- std::vector<CEntity> vEntity2; // 乱序
- for ( int n=0; n<10; n++ )
- {
- nValue = rand()%10;
- vEntity1.insert(std::upper_bound(vEntity1.begin(),vEntity1.end(),CEntity(nValue),CLess()), CEntity(nValue) );
- vEntity2.push_back( CEntity(nValue) );
- }
- }