メインページ   名前空間一覧   クラス階層   構成   ファイル一覧   名前空間メンバ   構成メンバ   ファイルメンバ  

AttrMap.h

解説を見る。
00001 // -*- mode: C++ -*-
00002 #ifndef MiX_ATTRMAP_H_
00003 #define MiX_ATTRMAP_H_
00004 
00005 #include <vector>
00006 #include "XMLString.h"
00007 #include "misc.h"
00008 
00009 namespace MiX{
00010   template <class charT,class char_traits,class xml_traits>
00011   class AttrMap {
00012   public:
00013     MiX_Template_Typedef(charT,char_traits,xml_traits);
00014     typedef std::pair<string_type,string_type> val_type;
00015     typedef std::vector<val_type> container_type;
00016     typedef typename container_type::iterator iterator;
00017     typedef typename container_type::const_iterator const_iterator;
00018   private:
00019     container_type impl_;
00020     struct search_by_key{
00021       string_type key_;
00022       search_by_key(const string_type& key) : key_(key) { };
00023       bool operator()(const val_type& v){ return v.first==key_; }
00024     };
00025 
00026   public:
00028     AttrMap(){ impl_.clear(); }
00030     iterator begin() { return impl_.begin(); }
00032     iterator end() { return impl_.end(); }
00034     const_iterator begin()const{ return impl_.begin(); }
00036     const_iterator end()const{ return impl_.end(); }
00038     size_t size()const{ return impl_.size(); }
00040     bool empty()const{ return impl_.empty(); }
00042     void insert(const val_type& data){ impl_.push_back(data); }
00044     void clear(){ impl_.clear(); }
00046     iterator find(const string_type& key){ 
00047       return find_if(begin(),end(),search_by_key(key));
00048     }
00050     const_iterator find(const string_type key)const{ 
00051       return find_if(begin(),end(),search_by_key(key));
00052     }
00054     void erase(const string_type key){
00055       iterator it = find(key);
00056       if(it!=end()) impl_.erase(it);
00057     }
00059     string_type operator[](const string_type& key) const;
00060   };
00061 }
00062 
00063 #ifndef MiX_ATTRMAP_CPP_
00064 #include "AttrMap.cpp"
00065 #endif
00066 
00067 #endif

MiXに対してMon Nov 18 03:48:27 2002に生成されました。 doxygen1.2.14 作者 Dimitri van Heesch, © 1997-2002