题记:使用容器时,经常会使用其进行排序查找和删除,简单的sort, find, erase/remove不用多说了,关键是使用谓词时的使用比较麻烦,这里仅仅列举了个例子进行保留,以备以后可以直接拿来使用。
样例代码: COPY后编译可以直接运行(使用Visual Studio 2008 编译通过)。
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
#include <string>
struct KeyValue
{
std::string m_strKey;
int m_nValue;
KeyValue() : m_strKey(""), m_nValue(0) {}
KeyValue(std::string strKey, int nValue) : m_strKey(strKey), m_nValue(nValue) {}
bool EqualKey(std::string strKey)
{
return m_strKey.find(strKey) != -1 ? true : false;
}
};
bool CompareKeyValueGreaterValue(KeyValue val1, KeyValue val2)
{
return val1.m_nValue > val2.m_nValue;
}
typedef std::vector<KeyValue> KeyValueCollection;
void ShowAll(const KeyValueCollection& coll)
{
std::cout << " --- begin --- " << std::endl;
for (