#include "stdafx.h" #include "CAttributeVector.h" #include namespace SERVO { CAttributeVector::CAttributeVector() { } CAttributeVector::~CAttributeVector() { for (auto item : m_attributes) { delete item; } m_attributes.clear(); } 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 (unsigned int)m_attributes.size(); } void CAttributeVector::clear() { for (auto item : m_attributes) { delete item; } 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(); } CAttribute* CAttributeVector::getAttribute(unsigned int index) { ASSERT(index < m_attributes.size()); return m_attributes[index]; } }