C++中string类的append函数内部代码是什么
答案:1 悬赏:70 手机版
解决时间 2021-03-19 21:27
- 提问者网友:风月客
- 2021-03-18 22:56
C++中string类的append函数内部代码是什么
最佳答案
- 五星知识达人网友:枭雄戏美人
- 2021-03-19 00:11
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)); }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯