您的位置:首页 > 其它

利用STL中的sort对vector中指针元素的排序

2011-07-11 09:46 375 查看
本以为很简单的一个sort,却始终排不出来正确的顺序,让我有些纳闷,后来仔细一想,我只是对指针(地址)进行了排序,并没有对vector中的元素进行排序。

#include <algorithm>
#include <iostream>
#include <vector>

using namespace std;

class MyClass

bool cmp( const MyClass* p1,const MyClass* p2 )

int _tmain(int argc, _TCHAR* argv[])
{
vector<MyClass*> m_pVector;

MyClass* a = new MyClass;
a->m_value = 12;
m_pVector.push_back(a);

a = new MyClass;
a->m_value = 25;
m_pVector.push_back(a);

a = new MyClass;
a->m_value = 8;
m_pVector.push_back(a);

sort(m_pVector.begin(),m_pVector.end(),cmp);

for (vector<MyClass*>::iterator it = m_pVector.begin(); it != m_pVector.end(); it++)
std::cout << (*it)->m_value << std::endl;

system("pause");

return 0;
}

上面就是简单的一个demo,对指针容器进行排序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: