コード例 #1
0
ファイル: covlist.hpp プロジェクト: mikecovlee/covstdlib
	void push_front(const T & dat)
	{
		node *newdat = new node(&mFront, new T(dat), mFront.forward());
		mFront.forward()->backward(newdat);
		mFront.forward(newdat);
		++mSize;
	}
コード例 #2
0
ファイル: covlist.hpp プロジェクト: mikecovlee/covstdlib
	template < typename...Args > void emplace_front(Args && ... args)
	{
		node *newdat = new node(&mFront, new T(args...), mFront.forward());
		mFront.forward()->backward(newdat);
		mFront.forward(newdat);
		++mSize;
	}
コード例 #3
0
ファイル: covlist.hpp プロジェクト: mikecovlee/covstdlib
	void pop_front()
	{
		if (mSize == 0)
			return;
		node *current = mFront.forward();
		current->forward()->backward(&mFront);
		mFront.forward(current->forward());
		delete current->data();
		delete current;
		--mSize;
	}
コード例 #4
0
ファイル: covlist.hpp プロジェクト: mikecovlee/covstdlib
	bool empty() const
	{
		return !mFront.forward()->usable();
	}
コード例 #5
0
ファイル: covlist.hpp プロジェクト: mikecovlee/covstdlib
	node(const node & obj):mFront(obj.forward()), mBack(obj.backward()), mDat(obj.data())
	{
	}
コード例 #6
0
ファイル: covlist.hpp プロジェクト: mikecovlee/covstdlib
	iterator begin()
	{
		return iterator(mFront.forward());
	}
コード例 #7
0
ファイル: covlist.hpp プロジェクト: mikecovlee/covstdlib
	T & front()
	{
		if(!mFront.forward()->usable())
			throw cov::error("E0005");
		return *mFront.forward()->data();
	}