亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? list

?? C標(biāo)準(zhǔn)庫(kù)源代碼,能提高對(duì)C的理解,不錯(cuò)的哦
??
字號(hào):
// list standard header

#if     _MSC_VER > 1000 /*IFSTRIP=IGN*/
#pragma once
#endif

#ifndef _LIST_
#define _LIST_
#include <cstddef>
#include <functional>
#include <iterator>
#include <memory>
#include <stdexcept>
#include <xutility>

#ifdef  _MSC_VER
#pragma pack(push,8)
#endif  /* _MSC_VER */
_STD_BEGIN
		// TEMPLATE CLASS list
template<class _Ty, class _A = allocator<_Ty> >
	class list {
protected:
	struct _Node;
	friend struct _Node;
	typedef _POINTER_X(_Node, _A) _Nodeptr;
	struct _Node {
		_Nodeptr _Next, _Prev;
		_Ty _Value;
		};
	struct _Acc;
	friend struct _Acc;
	struct _Acc {
		typedef _REFERENCE_X(_Nodeptr, _A) _Nodepref;
		typedef _A::reference _Vref;
		static _Nodepref _Next(_Nodeptr _P)
			{return ((_Nodepref)(*_P)._Next); }
		static _Nodepref _Prev(_Nodeptr _P)
			{return ((_Nodepref)(*_P)._Prev); }
		static _Vref _Value(_Nodeptr _P)
			{return ((_Vref)(*_P)._Value); }
		};
public:
	typedef list<_Ty, _A> _Myt;
	typedef _A allocator_type;
	typedef _A::size_type size_type;
	typedef _A::difference_type difference_type;
	typedef _A::pointer _Tptr;
	typedef _A::const_pointer _Ctptr;
	typedef _A::reference reference;
	typedef _A::const_reference const_reference;
	typedef _A::value_type value_type;
		// CLASS const_iterator
	class iterator;
	class const_iterator;
	friend class const_iterator;
	class const_iterator : public _Bidit<_Ty, difference_type> {
	public:
		const_iterator()
			{}
		const_iterator(_Nodeptr _P)
			: _Ptr(_P) {}
		const_iterator(const iterator& _X)
			: _Ptr(_X._Ptr) {}
		const_reference operator*() const
			{return (_Acc::_Value(_Ptr)); }
		_Ctptr operator->() const
			{return (&**this); }
		const_iterator& operator++()
			{_Ptr = _Acc::_Next(_Ptr);
			return (*this); }
		const_iterator operator++(int)
			{const_iterator _Tmp = *this;
			++*this;
			return (_Tmp); }
		const_iterator& operator--()
			{_Ptr = _Acc::_Prev(_Ptr);
			return (*this); }
		const_iterator operator--(int)
			{const_iterator _Tmp = *this;
			--*this;
			return (_Tmp); }
		bool operator==(const const_iterator& _X) const
			{return (_Ptr == _X._Ptr); }
		bool operator!=(const const_iterator& _X) const
			{return (!(*this == _X)); }
		_Nodeptr _Mynode() const
			{return (_Ptr); }
	protected:
		_Nodeptr _Ptr;
		};
		// CLASS iterator
	friend class iterator;
	class iterator : public const_iterator {
	public:
		iterator()
			{}
		iterator(_Nodeptr _P)
			: const_iterator(_P) {}
		reference operator*() const
			{return (_Acc::_Value(_Ptr)); }
		_Tptr operator->() const
			{return (&**this); }
		iterator& operator++()
			{_Ptr = _Acc::_Next(_Ptr);
			return (*this); }
		iterator operator++(int)
			{iterator _Tmp = *this;
			++*this;
			return (_Tmp); }
		iterator& operator--()
			{_Ptr = _Acc::_Prev(_Ptr);
			return (*this); }
		iterator operator--(int)
			{iterator _Tmp = *this;
			--*this;
			return (_Tmp); }
		bool operator==(const iterator& _X) const
			{return (_Ptr == _X._Ptr); }
		bool operator!=(const iterator& _X) const
			{return (!(*this == _X)); }
		};
	typedef reverse_bidirectional_iterator<iterator,
		value_type, reference, _Tptr, difference_type>
			reverse_iterator;
	typedef reverse_bidirectional_iterator<const_iterator,
		value_type, const_reference, _Ctptr, difference_type>
			const_reverse_iterator;
	explicit list(const _A& _Al = _A())
		: allocator(_Al),
		_Head(_Buynode()), _Size(0) {}
	explicit list(size_type _N, const _Ty& _V = _Ty(),
		const _A& _Al = _A())
		: allocator(_Al),
		_Head(_Buynode()), _Size(0)
		{insert(begin(), _N, _V); }
	list(const _Myt& _X)
		: allocator(_X.allocator),
		_Head(_Buynode()), _Size(0)
		{insert(begin(), _X.begin(), _X.end()); }
	list(const _Ty *_F, const _Ty *_L, const _A& _Al = _A())
		: allocator(_Al),
		_Head(_Buynode()), _Size(0)
		{insert(begin(), _F, _L); }
	typedef const_iterator _It;
	list(_It _F, _It _L, const _A& _Al = _A())
		: allocator(_Al),
		_Head(_Buynode()), _Size(0)
		{insert(begin(), _F, _L); }
	~list()
		{erase(begin(), end());
		_Freenode(_Head);
		_Head = 0, _Size = 0; }
	_Myt& operator=(const _Myt& _X)
		{if (this != &_X)
			{iterator _F1 = begin();
			iterator _L1 = end();
			const_iterator _F2 = _X.begin();
			const_iterator _L2 = _X.end();
			for (; _F1 != _L1 && _F2 != _L2; ++_F1, ++_F2)
				*_F1 = *_F2;
			erase(_F1, _L1);
			insert(_L1, _F2, _L2); }
		return (*this); }
	iterator begin()
		{return (iterator(_Acc::_Next(_Head))); }
	const_iterator begin() const
		{return (const_iterator(_Acc::_Next(_Head))); }
	iterator end()
		{return (iterator(_Head)); }
	const_iterator end() const
		{return (const_iterator(_Head)); }
	reverse_iterator rbegin()
		{return (reverse_iterator(end())); }
	const_reverse_iterator rbegin() const
		{return (const_reverse_iterator(end())); }
	reverse_iterator rend()
		{return (reverse_iterator(begin())); }
	const_reverse_iterator rend() const
		{return (const_reverse_iterator(begin())); }
	void resize(size_type _N, _Ty _X = _Ty())
		{if (size() < _N)
			insert(end(), _N - size(), _X);
		else
			while (_N < size())
				pop_back(); }
	size_type size() const
		{return (_Size); }
	size_type max_size() const
		{return (allocator.max_size()); }
	bool empty() const
		{return (size() == 0); }
	_A get_allocator() const
		{return (allocator); }
	reference front()
		{return (*begin()); }
	const_reference front() const
		{return (*begin()); }
	reference back()
		{return (*(--end())); }
	const_reference back() const
		{return (*(--end())); }
	void push_front(const _Ty& _X)
		{insert(begin(), _X); }
	void pop_front()
		{erase(begin()); }
	void push_back(const _Ty& _X)
		{insert(end(), _X); }
	void pop_back()
		{erase(--end()); }
	void assign(_It _F, _It _L)
		{erase(begin(), end());
		insert(begin(), _F, _L); }
	void assign(size_type _N, const _Ty& _X = _Ty())
		{erase(begin(), end());
		insert(begin(), _N, _X); }
	iterator insert(iterator _P, const _Ty& _X = _Ty())
		{_Nodeptr _S = _P._Mynode();
		_Acc::_Prev(_S) = _Buynode(_S, _Acc::_Prev(_S));
		_S = _Acc::_Prev(_S);
		_Acc::_Next(_Acc::_Prev(_S)) = _S;
		allocator.construct(&_Acc::_Value(_S), _X);
		++_Size;
		return (iterator(_S)); }
	void insert(iterator _P, size_type _M, const _Ty& _X)
		{for (; 0 < _M; --_M)
			insert(_P, _X); }
	void insert(iterator _P, const _Ty *_F, const _Ty *_L)
		{for (; _F != _L; ++_F)
			insert(_P, *_F); }
	void insert(iterator _P, _It _F, _It _L)
		{for (; _F != _L; ++_F)
			insert(_P, *_F); }
	iterator erase(iterator _P)
		{_Nodeptr _S = (_P++)._Mynode();
		_Acc::_Next(_Acc::_Prev(_S)) = _Acc::_Next(_S);
		_Acc::_Prev(_Acc::_Next(_S)) = _Acc::_Prev(_S);
		allocator.destroy(&_Acc::_Value(_S));
		_Freenode(_S);
		--_Size;
		return (_P); }
	iterator erase(iterator _F, iterator _L)
		{while (_F != _L)
			erase(_F++);
		return (_F); }
	void clear()
		{erase(begin(), end()); }
	void swap(_Myt& _X)
		{if (allocator == _X.allocator)
			{std::swap(_Head, _X._Head);
			std::swap(_Size, _X._Size); }
		else
			{iterator _P = begin();
			splice(_P, _X);
			_X.splice(_X.begin(), *this, _P, end()); }}
	friend void swap(_Myt& _X, _Myt& _Y)
		{_X.swap(_Y); }
	void splice(iterator _P, _Myt& _X)
		{if (!_X.empty())
			{_Splice(_P, _X, _X.begin(), _X.end());
			_Size += _X._Size;
			_X._Size = 0; }}
	void splice(iterator _P, _Myt& _X, iterator _F)
		{iterator _L = _F;
		if (_P != _F && _P != ++_L)
			{_Splice(_P, _X, _F, _L);
			++_Size;
			--_X._Size; }}
	void splice(iterator _P, _Myt& _X, iterator _F, iterator _L)
		{if (_F != _L)
			{if (&_X != this)
				{difference_type _N = 0;
				_Distance(_F, _L, _N);
				_Size += _N;
				_X._Size -= _N; }
			_Splice(_P, _X, _F, _L); }}
	void remove(const _Ty& _V)
		{iterator _L = end();
		for (iterator _F = begin(); _F != _L; )
			if (*_F == _V)
				erase(_F++);
			else
				++_F; }
	typedef binder2nd<not_equal_to<_Ty> > _Pr1;
	void remove_if(_Pr1 _Pr)
		{iterator _L = end();
		for (iterator _F = begin(); _F != _L; )
			if (_Pr(*_F))
				erase(_F++);
			else
				++_F; }
	void unique()
		{iterator _F = begin(), _L = end();
		if (_F != _L)
			for (iterator _M = _F; ++_M != _L; _M = _F)
				if (*_F == *_M)
					erase(_M);
				else
					_F = _M; }
	typedef not_equal_to<_Ty> _Pr2;
	void unique(_Pr2 _Pr)
		{iterator _F = begin(), _L = end();
		if (_F != _L)
			for (iterator _M = _F; ++_M != _L; _M = _F)
				if (_Pr(*_F, *_M))
					erase(_M);
				else
					_F = _M; }
	void merge(_Myt& _X)
		{if (&_X != this)
			{iterator _F1 = begin(), _L1 = end();
			iterator _F2 = _X.begin(), _L2 = _X.end();
			while (_F1 != _L1 && _F2 != _L2)
				if (*_F2 < *_F1)
					{iterator _Mid2 = _F2;
					_Splice(_F1, _X, _F2, ++_Mid2);
					_F2 = _Mid2; }
				else
					++_F1;
			if (_F2 != _L2)
				_Splice(_L1, _X, _F2, _L2);
			_Size += _X._Size;
			_X._Size = 0; }}
	typedef greater<_Ty> _Pr3;
	void merge(_Myt& _X, _Pr3 _Pr)
		{if (&_X != this)
			{iterator _F1 = begin(), _L1 = end();
			iterator _F2 = _X.begin(), _L2 = _X.end();
			while (_F1 != _L1 && _F2 != _L2)
				if (_Pr(*_F2, *_F1))
					{iterator _Mid2 = _F2;
					_Splice(_F1, _X, _F2, ++_Mid2);
					_F2 = _Mid2; }
				else
					++_F1;
			if (_F2 != _L2)
				_Splice(_L1, _X, _F2, _L2);
			_Size += _X._Size;
			_X._Size = 0; }}
	void sort()
		{if (2 <= size())
			{const size_t _MAXN = 15;
			_Myt _X(allocator), _A[_MAXN + 1];
			size_t _N = 0;
			while (!empty())
				{_X.splice(_X.begin(), *this, begin());
				size_t _I;
				for (_I = 0; _I < _N && !_A[_I].empty(); ++_I)
					{_A[_I].merge(_X);
					_A[_I].swap(_X); }
				if (_I == _MAXN)
					_A[_I].merge(_X);
				else
					{_A[_I].swap(_X);
					if (_I == _N)
						++_N; }}
			while (0 < _N)
				merge(_A[--_N]); }}
	void sort(_Pr3 _Pr)
		{if (2 <= size())
			{const size_t _MAXN = 15;
			_Myt _X(allocator), _A[_MAXN + 1];
			size_t _N = 0;
			while (!empty())
				{_X.splice(_X.begin(), *this, begin());
				size_t _I;
				for (_I = 0; _I < _N && !_A[_I].empty(); ++_I)
					{_A[_I].merge(_X, _Pr);
					_A[_I].swap(_X); }
				if (_I == _MAXN)
					_A[_I].merge(_X, _Pr);
				else
					{_A[_I].swap(_X);
					if (_I == _N)
						++_N; }}
			while (0 < _N)
				merge(_A[--_N], _Pr); }}
	void reverse()
		{if (2 <= size())
			{iterator _L = end();
			for (iterator _F = ++begin(); _F != _L; )
				{iterator _M = _F;
				_Splice(begin(), *this, _M, ++_F); }}}
protected:
	_Nodeptr _Buynode(_Nodeptr _Narg = 0, _Nodeptr _Parg = 0)
		{_Nodeptr _S = (_Nodeptr)allocator._Charalloc(
			1 * sizeof (_Node));
		_Acc::_Next(_S) = _Narg != 0 ? _Narg : _S;
		_Acc::_Prev(_S) = _Parg != 0 ? _Parg : _S;
		return (_S); }
	void _Freenode(_Nodeptr _S)
		{allocator.deallocate(_S, 1); }
	void _Splice(iterator _P, _Myt& _X, iterator _F, iterator _L)
		{if (allocator == _X.allocator)
			{_Acc::_Next(_Acc::_Prev(_L._Mynode())) =
				_P._Mynode();
			_Acc::_Next(_Acc::_Prev(_F._Mynode())) =
				_L._Mynode();
			_Acc::_Next(_Acc::_Prev(_P._Mynode())) =
				_F._Mynode();
			_Nodeptr _S = _Acc::_Prev(_P._Mynode());
			_Acc::_Prev(_P._Mynode()) =
				_Acc::_Prev(_L._Mynode());
			_Acc::_Prev(_L._Mynode()) =
				_Acc::_Prev(_F._Mynode());
			_Acc::_Prev(_F._Mynode()) = _S; }
		else
			{insert(_P, _F, _L);
			_X.erase(_F, _L); }}
	void _Xran() const
		{_THROW(out_of_range, "invalid list<T> subscript"); }
	_A allocator;
	_Nodeptr _Head;
	size_type _Size;
	};
		// list TEMPLATE OPERATORS
template<class _Ty, class _A> inline
	bool operator==(const list<_Ty, _A>& _X,
		const list<_Ty, _A>& _Y)
	{return (_X.size() == _Y.size()
		&& equal(_X.begin(), _X.end(), _Y.begin())); }
template<class _Ty, class _A> inline
	bool operator!=(const list<_Ty, _A>& _X,
		const list<_Ty, _A>& _Y)
	{return (!(_X == _Y)); }
template<class _Ty, class _A> inline
	bool operator<(const list<_Ty, _A>& _X,
		const list<_Ty, _A>& _Y)
	{return (lexicographical_compare(_X.begin(), _X.end(),
		_Y.begin(), _Y.end())); }
template<class _Ty, class _A> inline
	bool operator>(const list<_Ty, _A>& _X,
		const list<_Ty, _A>& _Y)
	{return (_Y < _X); }
template<class _Ty, class _A> inline
	bool operator<=(const list<_Ty, _A>& _X,
		const list<_Ty, _A>& _Y)
	{return (!(_Y < _X)); }
template<class _Ty, class _A> inline
	bool operator>=(const list<_Ty, _A>& _X,
		const list<_Ty, _A>& _Y)
	{return (!(_X < _Y)); }
_STD_END
#ifdef  _MSC_VER
#pragma pack(pop)
#endif  /* _MSC_VER */

#endif /* _LIST_ */

/*
 * Copyright (c) 1995 by P.J. Plauger.  ALL RIGHTS RESERVED. 
 * Consult your license regarding permissions and restrictions.
 */

/*
 * This file is derived from software bearing the following
 * restrictions:
 *
 * Copyright (c) 1994
 * Hewlett-Packard Company
 *
 * Permission to use, copy, modify, distribute and sell this
 * software and its documentation for any purpose is hereby
 * granted without fee, provided that the above copyright notice
 * appear in all copies and that both that copyright notice and
 * this permission notice appear in supporting documentation.
 * Hewlett-Packard Company makes no representations about the
 * suitability of this software for any purpose. It is provided
 * "as is" without express or implied warranty.
 */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99久久精品| 在线欧美一区二区| 国产精品卡一卡二卡三| 99精品在线观看视频| 亚洲精品自拍动漫在线| 在线不卡免费av| 国内精品伊人久久久久av一坑| 日本一区二区免费在线| 色综合久久综合中文综合网| 三级久久三级久久久| 久久久蜜臀国产一区二区| 成人av在线影院| 亚洲国产精品久久久久婷婷884| 欧美一级xxx| 成人免费视频一区| 亚洲一级二级三级在线免费观看| 91精品国产色综合久久ai换脸| 精品亚洲aⅴ乱码一区二区三区| 国产精品视频在线看| 色综合久久天天综合网| 日本不卡视频一二三区| 国产视频一区在线观看 | 91色在线porny| 亚洲电影在线免费观看| 26uuu亚洲| 色综合天天综合给合国产| 日韩精品一卡二卡三卡四卡无卡| 久久久久久黄色| 欧美性生活一区| 国产激情精品久久久第一区二区| 亚洲精品国产品国语在线app| 欧美一卡二卡三卡| 不卡的电影网站| 免费黄网站欧美| 亚洲少妇30p| 91精品国产综合久久福利| 99视频在线精品| 蜜桃av一区二区三区| 国产精品久久久久精k8| 日韩一区二区三区免费观看| jiyouzz国产精品久久| 秋霞影院一区二区| 中文字幕字幕中文在线中不卡视频| 91精品中文字幕一区二区三区| 国产99久久久精品| 日韩精品色哟哟| 亚洲欧美另类在线| 久久久久久久久久美女| 欧美日韩的一区二区| 欧美电视剧在线看免费| 色综合久久久久综合体| 国产精品一级片在线观看| 亚洲国产色一区| 日本一区二区高清| 欧美一区二区三区四区高清| 色综合久久久久久久| 国产一区二区三区电影在线观看| 亚洲成a人片综合在线| 国产精品嫩草99a| 精品国产1区二区| 欧美日韩综合色| 91热门视频在线观看| 国产精品77777| 奇米亚洲午夜久久精品| 一级特黄大欧美久久久| 国产精品欧美综合在线| 欧美精品一区男女天堂| 欧美精品一二三四| 日本韩国一区二区三区| jiyouzz国产精品久久| 国产精品一区二区在线观看不卡 | www激情久久| 777a∨成人精品桃花网| 欧美系列亚洲系列| 91蜜桃在线观看| 成人爽a毛片一区二区免费| 精品一二三四区| 蜜桃久久久久久久| 日韩电影在线一区二区| 亚洲综合成人网| 一区二区三区在线影院| 日韩码欧中文字| 中文字幕一区二区三区四区| 国产色综合久久| 国产视频一区在线播放| 久久伊人蜜桃av一区二区| 精品久久人人做人人爽| 日韩欧美一卡二卡| 欧美一级片免费看| 日韩一卡二卡三卡四卡| 91精品国产高清一区二区三区蜜臀 | 99精品欧美一区二区三区小说 | 欧美草草影院在线视频| 欧美一区二区三区系列电影| 欧美日韩国产系列| 欧美色图12p| 欧美视频一区二区三区四区| 欧美最新大片在线看| 欧美性xxxxxx少妇| 欧美三级日韩在线| 欧美日韩不卡视频| 欧美久久久久中文字幕| 69成人精品免费视频| 777久久久精品| 欧美一级欧美三级在线观看 | 日韩一级欧美一级| 欧美哺乳videos| 久久一日本道色综合| 久久只精品国产| 日本一区二区三级电影在线观看| 中文字幕精品一区二区精品绿巨人| 国产精品全国免费观看高清 | 蜜臀久久久久久久| 蜜臀av在线播放一区二区三区| 麻豆精品久久久| 久草精品在线观看| 国产福利电影一区二区三区| 粉嫩13p一区二区三区| av激情亚洲男人天堂| 色伊人久久综合中文字幕| 欧美三级乱人伦电影| 337p亚洲精品色噜噜狠狠| 日韩视频一区二区三区| 久久久久久久综合| 中文字幕在线不卡视频| 夜夜夜精品看看| 日本成人在线视频网站| 国模无码大尺度一区二区三区| 粉嫩蜜臀av国产精品网站| 91免费观看视频| 欧美福利电影网| 精品福利一二区| 国产精品久久久久影院色老大| 亚洲视频一区二区免费在线观看| 午夜视频一区在线观看| 精品一区二区三区视频| 成人永久aaa| 欧美中文字幕亚洲一区二区va在线| 在线不卡一区二区| 国产亚洲综合性久久久影院| 亚洲欧美日韩成人高清在线一区| 午夜精品久久久久久久99水蜜桃 | 久久国产精品99久久久久久老狼| 国产一级精品在线| 91麻豆国产香蕉久久精品| 欧美区在线观看| 久久久综合视频| 一区二区三区四区高清精品免费观看| 日本欧美肥老太交大片| 国产成人综合在线观看| 欧美性做爰猛烈叫床潮| 2020日本不卡一区二区视频| 亚洲视频小说图片| 免费观看成人鲁鲁鲁鲁鲁视频| 成人av在线播放网址| 欧美日韩国产小视频| 日本一区二区三区免费乱视频| 亚洲国产精品影院| 国产做a爰片久久毛片| 色综合一区二区| 欧美成人一区二区三区片免费| 中文字幕在线不卡一区| 日本午夜一本久久久综合| 成人av先锋影音| 欧美一级日韩一级| 亚洲欧美区自拍先锋| 狠狠色2019综合网| 欧美三级资源在线| 日本一区二区三区四区在线视频| 午夜欧美2019年伦理| 国产成人免费视频网站| 欧美日韩高清不卡| 中日韩免费视频中文字幕| 人人精品人人爱| 91成人在线免费观看| 久久久www免费人成精品| 亚洲福利一区二区| 成人黄色av网站在线| 欧美一卡二卡三卡| 一区二区三区中文字幕在线观看| 国产乱色国产精品免费视频| 欧美日韩专区在线| 成人免费视频在线观看| 国内精品国产成人国产三级粉色| 欧美乱熟臀69xxxxxx| 日韩毛片视频在线看| 国产精品 日产精品 欧美精品| 51精品秘密在线观看| 亚洲欧美日韩一区二区| 国产麻豆成人精品| 日韩一区二区电影在线| 亚洲一卡二卡三卡四卡五卡| 成人国产视频在线观看| 日韩欧美中文一区| 亚洲综合一区二区| 99r国产精品| 欧美国产日韩亚洲一区| 国内精品视频666| 日韩欧美自拍偷拍| 午夜在线成人av|