本文整理汇总了C++中StrVec::erase方法的典型用法代码示例。如果您正苦于以下问题:C++ StrVec::erase方法的具体用法?C++ StrVec::erase怎么用?C++ StrVec::erase使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StrVec
的用法示例。
在下文中一共展示了StrVec::erase方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: trimmedName
string trimmedName(string& s)
{
//printf("splitting %s\n",s.c_str());
StrVec vec;
int n=strsplit_slash(s, vec);
//for(int i=0;i<n;i++) printf(" '%s'\n",vec[i].c_str());
unsigned int i=0;
while(i<vec.size())
{
if(i>0)
{
if(vec[i]==".." && vec[i-1]!="..")
{
i--;
vec.erase(vec.begin()+i,vec.begin()+i+2);
continue;
}
}
i++;
}
if(!vec.size()) return "";
string ret="";
for(unsigned int i=0; i<vec.size(); i++)
{
ret+=vec[i];
if(i+1!=vec.size()) ret+="/";
}
return ret;
}
示例2: erase
bool Data::erase(const std::string& key, size_t keyIdx)
{
if(keyIdx < m_keyIdx.size())
{
KeyIdx ki(key, 0);
size_t pos = (std::lower_bound(m_keyIdx.begin(), m_keyIdx.end(), ki, key_less) - m_keyIdx.begin()) + keyIdx;
if(pos < m_keyIdx.size() && key_eql(ki, m_keyIdx[pos]))
{
// users shouldn't really erase keys while reading data but ...
if(m_pos < m_keyIdx.size() && m_pos > pos)
--m_pos;
m_keyIdx.erase(m_keyIdx.begin() + pos);
m_keys.erase(m_keys.begin() + pos);
m_varData.erase(m_varData.begin() + pos);
return true;
}
}
return false;
}