本文整理汇总了C++中basic_string::push_back方法的典型用法代码示例。如果您正苦于以下问题:C++ basic_string::push_back方法的具体用法?C++ basic_string::push_back怎么用?C++ basic_string::push_back使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类basic_string
的用法示例。
在下文中一共展示了basic_string::push_back方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: while
basic_istream<_CharT, _Traits>& __STL_CALL
getline(basic_istream<_CharT, _Traits>& __is,
basic_string<_CharT,_Traits,_Alloc>& __s,
_CharT __delim)
{
__STL_USING_VENDOR_STD
typedef basic_istream<_CharT, _Traits> __istream;
size_t __nread = 0;
typename basic_istream<_CharT, _Traits>::sentry __sentry(__is, true);
if (__sentry) {
basic_streambuf<_CharT, _Traits>* __buf = __is.rdbuf();
__s.clear();
while (__nread < __s.max_size()) {
int __c1 = __buf->sbumpc();
if (_Traits::eq_int_type(__c1, _Traits::eof())) {
__is.setstate(__istream::eofbit);
break;
}
else {
++__nread;
_CharT __c = _Traits::to_char_type(__c1);
if (!_Traits::eq(__c, __delim))
__s.push_back(__c);
else
break; // Character is extracted but not appended.
}
}
}
if (__nread == 0 || __nread >= __s.max_size())
__is.setstate(__istream::failbit);
return __is;
}
示例2: defined
basic_istream<_CharT, _Traits>& __STL_CALL
operator>>(basic_istream<_CharT, _Traits>& __is,
basic_string<_CharT,_Traits, _Alloc>& __s)
{
# ifndef __STL_HAS_NO_NAMESPACES
# ifdef __SGI_STL_OWN_IOSTREAMS
using __STL_VENDOR_CSTD::size_t;
# else
using namespace __STL_VENDOR_STD;
# endif
# endif
typedef basic_istream<_CharT, _Traits> __istream;
typename __istream::sentry __sentry(__is);
if (__sentry) {
basic_streambuf<_CharT, _Traits>* __buf = __is.rdbuf();
typedef ctype<_CharT> _C_type;
const locale& __loc = __is.getloc();
#ifdef __SGI_STL_OWN_IOSTREAMS
const _C_type& _Ctype = use_facet<_C_type>(__loc);
#else
# if defined (__STL_MSVC) && (__STL_MSVC <= 1200 )
const _C_type& _Ctype = use_facet(__loc , ( _C_type * ) 0, true);
# elif defined (__SUNPRO_CC)
const _C_type& _Ctype = use_facet(__loc , ( _C_type * ) 0);
# else
const _C_type& _Ctype = use_facet<_C_type>(__loc);
# endif
#endif
__s.clear();
size_t __n = __is.width(0);
if (__n == 0)
__n = __STATIC_CAST(size_t,-1);
else
__s.reserve(__n);
while (__n-- > 0) {
typename _Traits::int_type __c1 = __buf->sbumpc();
if (_Traits::eq_int_type(__c1, _Traits::eof())) {
__is.setstate(__istream::eofbit);
break;
}
else {
_CharT __c = _Traits::to_char_type(__c1);
if (_Ctype.is(_C_type::space, __c)) {
if (_Traits::eq_int_type(__buf->sputbackc(__c), _Traits::eof()))
__is.setstate(__istream::failbit);
break;
}
else
__s.push_back(__c);
}
}
// If we have read no characters, then set failbit.
if (__s.size() == 0)
__is.setstate(__istream::failbit);
}
else
__is.setstate(__istream::failbit);
return __is;
}