| | |
| | | #include "stdafx.h" |
| | | #include "CAttributeVector.h" |
| | | #include <algorithm> |
| | | |
| | | |
| | | namespace SERVO { |
| | |
| | | m_attributes.clear(); |
| | | } |
| | | |
| | | void CAttributeVector::addAttribute(CAttribute* pAttribute) |
| | | void CAttributeVector::addAttribute(CAttribute* pAttribute, BOOL bReplace/* = FALSE*/) |
| | | { |
| | | if (bReplace) { |
| | | for (auto it = m_attributes.begin(); it != m_attributes.end(); ) { |
| | | if ((*it)->getName().compare(pAttribute->getName()) == 0) { |
| | | delete (*it); |
| | | it = m_attributes.erase(it); |
| | | } |
| | | else { |
| | | ++it; |
| | | } |
| | | } |
| | | } |
| | | |
| | | m_attributes.push_back(pAttribute); |
| | | } |
| | | |
| | | void CAttributeVector::addAttributeVector(CAttributeVector& av) |
| | | { |
| | | for (auto item : av.m_attributes) { |
| | | m_attributes.push_back(item); |
| | | } |
| | | } |
| | | |
| | | unsigned int CAttributeVector::size() |
| | | { |
| | | return m_attributes.size(); |
| | | return (unsigned int)m_attributes.size(); |
| | | } |
| | | |
| | | void CAttributeVector::clear() |
| | |
| | | m_attributes.clear(); |
| | | } |
| | | |
| | | void CAttributeVector::sortWithWeight() |
| | | { |
| | | std::sort(m_attributes.begin(), m_attributes.end(), [](CAttribute* pAttribute1, CAttribute* pAttribut2) { |
| | | return pAttribute1->getWeight() < pAttribut2->getWeight(); |
| | | }); |
| | | } |
| | | |
| | | bool CAttributeVector::empty() |
| | | { |
| | | return m_attributes.empty(); |