20 #ifndef __index_vector_h_ 21 #define __index_vector_h_ 45 return ( VectorNo+1 == m_Keys.size() )
47 : m_Base.begin() + m_Keys[VectorNo + 1];
51 assert(VectorNo < m_Keys.size());
52 return m_Base.begin() + m_Keys[VectorNo];
68 return m_Keys.empty();
71 void Create(vector< vector<T> >& src)
73 m_Keys.resize( src.size() );
75 for (
DWORD i = 0; i < src.size(); i++)
77 m_Keys[i] = m_Base.size();
78 m_Base.insert(m_Base.end(), src[i].begin(), src[i].end());
88 fp = fopen(filename.c_str(),
"rb");
93 fread ((
void *)&Length, 1,
sizeof(
DWORD), fp);
99 fread ((
void *)&Length, 1,
sizeof(
DWORD), fp);
116 FILE* fp = fopen(filename.c_str(),
"wb");
120 DWORD nCount = m_Keys.size();
121 fwrite((
void *)&nCount,
sizeof(
DWORD), 1, fp);
124 nCount = m_Base.size();
125 fwrite ((
void *)&nCount,
sizeof(
DWORD), 1, fp);
139 return m_Base.size();
147 vector<DWORD>::const_iterator it = lower_bound(m_Keys.begin(), m_Keys.end(), BaseNo);
148 if (it == m_Keys.begin())
return false;
149 if (it == m_Keys.end())
return false;
150 if (BaseNo < *it) it--;
151 KeyNo = it - m_Keys.begin();
153 DataNo = BaseNo - m_Keys[KeyNo];
size_t GetBaseSize() const
Definition: StaticVectorMap.h:137
void Create(vector< vector< T > > &src)
Definition: StaticVectorMap.h:71
vector< DWORD > m_Keys
Definition: StaticVectorMap.h:34
vector< T >::const_iterator const_iter_t
Definition: StaticVectorMap.h:40
vector< T > m_Base
Definition: StaticVectorMap.h:37
const_iter_t GetVectorBegin(DWORD VectorNo) const
Definition: StaticVectorMap.h:49
bool LoadVectorMap(string filename)
Definition: StaticVectorMap.h:83
void ReadVectorInner(FILE *fp, vector< T > &V, size_t Count)
Definition: bserialize.h:251
const_iter_t GetVectorEnd(DWORD VectorNo) const
Definition: StaticVectorMap.h:43
bool empty() const
Definition: StaticVectorMap.h:66
bool GetKeyByBaseNo(DWORD BaseNo, DWORD &KeyNo, DWORD &DataNo) const
Definition: StaticVectorMap.h:142
DWORD size() const
Definition: StaticVectorMap.h:61
bool WriteVectorInner(FILE *fp, const vector< T > &V)
Definition: bserialize.h:329
bool SaveVectorMap(string filename)
Definition: StaticVectorMap.h:112
uint32_t DWORD
Definition: utilit.h:105
DWORD GetVectorLength(DWORD VectorNo) const
Definition: StaticVectorMap.h:54
Definition: StaticVectorMap.h:29