查找:
在Vector中查找元素,可以通过find_if快速实现,但是需要先定义算子
class CIDCompare : unary_function
{
public:
CIDCompare(DWORD dwUserID_)
{
m_dwUserID = dwUserID_;
}
bool operator()(const TINFOVECTOR::value_type &vValue_) const
{
return (vValue_.dwUserID == m_dwUserID);
}
private:
DWORD m_dwUserID;
};
设定算子,然后
TINFOITERATOR infoIt;
CIDCompare IDCmp(dwUserID_);
infoIt = find_if(m_vKeyInfo.begin(), m_vKeyInfo.end(), IDCmp);
if( m_vKeyInfo.end() == infoIt )
{
...
}
iIndex = distance(m_vKeyInfo.begin(), infoIt);
复制:
STL虽然提供了copy函数,但是不能直接使用,需要back_inserter支持
std::copy(vecUser.begin(), vecUser.end(), std::back_inserter(vecTemp));
vector中元素的查找(find_if)与复制(copy)
最新推荐文章于 2024-05-31 15:34:02 发布