52template<
typename TYP,
typename ATT = DWORD>
83 _super::operator=(other);
84 m_vAttr = other.m_vAttr;
97 _super::operator+=(other);
98 m_vAttr += other.m_vAttr;
116 av.m_vAttr = m_vAttr + other.m_vAttr;
139 return _super::Remove(index) && m_vAttr.Remove(index);
152 size_t r = _super::SetElements(size, P);
154 m_vAttr.SetSize(_super::GetSize());
167 virtual bool Set(INDEX index,
const TYP& t)
169 return Set(index, t, 0);
179 virtual bool SetEx(INDEX index,
const TYP& t)
181 return SetEx(index, t, 0);
191 return _super::RemoveAll() && m_vAttr.RemoveAll();
201 virtual void Swap(INDEX index1, INDEX index2)
204 m_vAttr.Swap(index1, index2);
216 INDEX
Add(
const TYP& t,
const ATT& attribute)
218 INDEX r1 = _super::Add(t);
219 INDEX r2 = m_vAttr.Add(attribute);
220 if ( IsInvalid(r1) || IsInvalid(r2) )
222 return INVALID_INDEX;
224 ASSERTLIB( r1 == r2 );
235 INDEX
AddEx(
const TYP& t,
const ATT& attribute)
238 return Add(t, attribute);
251 bool Set(INDEX index,
const TYP& t,
const ATT& attribute)
253 return _super::Set(index, t) && m_vAttr.Set(index, attribute);
264 bool SetEx(INDEX index,
const TYP& t,
const ATT& attribute)
267 return Set(index, t, attribute);
279 return m_vAttr.Get(index);
291 return m_vAttr.SetEx(index, attribute);
303 bool Insert(INDEX index,
const TYP& t,
const ATT& attribute = ATT())
306 return _super::Insert(inex, t) && m_vAttr.Insert(index, attribute);
319 return _super::SetSize(size) && m_vAttr.SetSize(size);
330 _super::Serialize(_sr);
342 _super::Deserialize(ds);
bool Insert(INDEX index, const TYP &t, const ATT &attribute=ATT())
[追加] 要素一つ挿入.
virtual void Swap(INDEX index1, INDEX index2)
[設定] 要素の入れ替え
INDEX Add(const TYP &t, const ATT &attribute)
[追加] 要素一つ追加
bool Set(INDEX index, const TYP &t, const ATT &attribute)
[設定] 要素の設定
virtual void Deserialize(const IDeserializer &ds)
[処理] デシリアライズ
virtual ~CAttributedVectorT(void)
デストラクタ
virtual bool Remove(INDEX index)
[削除] 要素一つ削除
ATT GetAttribute(INDEX index) const
[取得] 要素の属性値、取得
CAttributedVectorT & operator=(const CAttributedVectorT &other)
[代入] コピーオペレータ
CAttributedVectorT operator+(const CAttributedVectorT &other) const
[作成] 連結
virtual bool SetSize(size_t size)
[操作] サイズ指定
virtual bool RemoveAll(void)
[削除] 全要素削除
INDEX AddEx(const TYP &t, const ATT &attribute)
[追加] 要素一つ追加
CAttributedVectorT(void)
コンストラクタ
virtual void Serialize(ISerializer &_sr) const
[処理] シリアライズ
CAttributedVectorT(const CAttributedVectorT &other)
コピーコンストラクタ
bool SetEx(INDEX index, const TYP &t, const ATT &attribute)
[設定] 要素の設定
virtual const CVectorT< TYP > & Refer(void) const
[取得] データ参照取得.
bool SetAttribute(INDEX index, const ATT &attribute)
[設定] 要素の属性値、設定
virtual bool SetEx(INDEX index, const TYP &t)
[設定] 要素の設定.
virtual bool Set(INDEX index, const TYP &t)
[設定] 要素の設定.
virtual size_t SetElements(size_t size, const TYP *P=NULL)
[設定] 複数要素設定.
CAttributedVectorT & operator+=(const CAttributedVectorT &other)
[追加] 追加オペレータ.
#define EXCLUSIVE(CLS)
簡易排他制御マクロ.
void Swap(T &t1, T &t2)
[変換] スワッパー.