C++中string类的append函数内部代码是什么
1个回答
展开全部
VC里定义一个string,例如
#include "stdafx.h"
#include<stdio.h>
#include <string>
using namespace std;
void main()
{
string s1;
char ch='1';
s1.append(&ch);
}
然后鼠标放在append上按F12, 然后回车。
这是别人做好的,别去研究了。
_Myt& append(const _Myt& _X)
{return (append(_X, 0, npos)); }
_Myt& append(const _Myt& _X, size_type _P, size_type _M)
{if (_X.size() < _P)
_Xran();
size_type _N = _X.size() - _P;
if (_N < _M)
_M = _N;
if (npos - _Len <= _M)
_Xlen();
if (0 < _M && _Grow(_N = _Len + _M))
{_Tr::copy(_Ptr + _Len, &_X.c_str()[_P], _M);
_Eos(_N); }
return (*this); }
_Myt& append(const _E *_S, size_type _M)
{if (npos - _Len <= _M)
_Xlen();
size_type _N;
if (0 < _M && _Grow(_N = _Len + _M))
{_Tr::copy(_Ptr + _Len, _S, _M);
_Eos(_N); }
return (*this); }
_Myt& append(const _E *_S)
{return (append(_S, _Tr::length(_S))); }
_Myt& append(size_type _M, _E _C)
{if (npos - _Len <= _M)
_Xlen();
size_type _N;
if (0 < _M && _Grow(_N = _Len + _M))
{_Tr::assign(_Ptr + _Len, _M, _C);
_Eos(_N); }
return (*this); }
_Myt& append(_It _F, _It _L)
{return (replace(end(), end(), _F, _L)); }
#include "stdafx.h"
#include<stdio.h>
#include <string>
using namespace std;
void main()
{
string s1;
char ch='1';
s1.append(&ch);
}
然后鼠标放在append上按F12, 然后回车。
这是别人做好的,别去研究了。
_Myt& append(const _Myt& _X)
{return (append(_X, 0, npos)); }
_Myt& append(const _Myt& _X, size_type _P, size_type _M)
{if (_X.size() < _P)
_Xran();
size_type _N = _X.size() - _P;
if (_N < _M)
_M = _N;
if (npos - _Len <= _M)
_Xlen();
if (0 < _M && _Grow(_N = _Len + _M))
{_Tr::copy(_Ptr + _Len, &_X.c_str()[_P], _M);
_Eos(_N); }
return (*this); }
_Myt& append(const _E *_S, size_type _M)
{if (npos - _Len <= _M)
_Xlen();
size_type _N;
if (0 < _M && _Grow(_N = _Len + _M))
{_Tr::copy(_Ptr + _Len, _S, _M);
_Eos(_N); }
return (*this); }
_Myt& append(const _E *_S)
{return (append(_S, _Tr::length(_S))); }
_Myt& append(size_type _M, _E _C)
{if (npos - _Len <= _M)
_Xlen();
size_type _N;
if (0 < _M && _Grow(_N = _Len + _M))
{_Tr::assign(_Ptr + _Len, _M, _C);
_Eos(_N); }
return (*this); }
_Myt& append(_It _F, _It _L)
{return (replace(end(), end(), _F, _L)); }
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询