本文整理汇总了C++中Wtroka::reserve方法的典型用法代码示例。如果您正苦于以下问题:C++ Wtroka::reserve方法的具体用法?C++ Wtroka::reserve怎么用?C++ Wtroka::reserve使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Wtroka
的用法示例。
在下文中一共展示了Wtroka::reserve方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: EscapeHtmlChars
void EscapeHtmlChars(Wtroka& str) {
static const Wtroka lt(LT, ARRAY_SIZE(LT));
static const Wtroka gt(GT, ARRAY_SIZE(GT));
static const Wtroka amp(AMP, ARRAY_SIZE(AMP));
static const Wtroka br(BR, ARRAY_SIZE(BR));
static const Wtroka quot(QUOT, ARRAY_SIZE(QUOT));
size_t escapedLen = 0;
const Wtroka& cs = str;
for (size_t i = 0; i < cs.size(); ++i)
escapedLen += EscapedLen<insertBr>(cs[i]);
if (escapedLen == cs.size())
return;
Wtroka res;
res.reserve(escapedLen);
size_t start = 0;
for (size_t i = 0; i < cs.size(); ++i) {
const Wtroka* ent = NULL;
switch (cs[i]) {
case '<':
ent = <
break;
case '>':
ent = >
break;
case '&':
ent = &
break;
case '\"':
ent = "
break;
default:
if (insertBr && (cs[i] == '\r' || cs[i] == '\n')) {
ent = &br;
break;
} else
continue;
}
res.append(cs.begin() + start, cs.begin() + i);
res.append(ent->begin(), ent->end());
start = i + 1;
}
res.append(cs.begin() + start, cs.end());
res.swap(str);
}
示例2: GetOriginalText
Wtroka CWordBase::GetOriginalText() const
{
//затычка для дурацких символов, порождаемых для <BR> после конца предложения
if (m_typ == Punct && IsChar(m_txt, 'W'))
return Wtroka();
size_t quoteCount = (m_bHasOpenQuote ? 1 : 0) + (m_bHasCloseQuote ? 1 : 0);
// optimize most frequent case
if (quoteCount == 0)
return m_txt;
Wtroka res;
res.reserve(m_txt.size() + quoteCount);
if (m_bHasOpenQuote)
res += m_bSingleOpenQuote ? SINGLE_QUOTE_CHAR : DOUBLE_QUOTE_CHAR;
res += m_txt;
if (m_bHasCloseQuote)
res += m_bSingleCloseQuote ? SINGLE_QUOTE_CHAR : DOUBLE_QUOTE_CHAR;
return res;
}