Cで一般的に使用されるメソッドのリスト++

参照https://www.cnblogs.com/fnlingnzb-learner/p/5889483.html
リストは順次要素のリストに格納されている。急激な挿入および除去を可能にするベクター(ベクター)が、ランダムアクセスに比べてより遅いです。

共通機能:
ASSIGN()の割り当てを一覧表示する
(バック)は最後の要素を返します
(開始)反復子の最初の要素へのポインタを返す
クリア()すべての要素削除
の空を()リストが空であるならば、真に戻る
(終了)終了を返します。イテレータ
消去()要素の除去
フロント()は、第1の素子返す
(get_allocator)をリストコンフィギュレータ戻る
インサート()要素が、リスト内に挿入され
MAX_SIZE()リスト要素の最大数を収容することができる返す
(マージ)をマージ2リスト
pop_back()は最後の要素の削除
pop_front()は最初の要素の削除
一back()のリストの最後に要素を追加
ヘッドのリストに要素を追加するpush_front()
逆反復の最初の要素へのポインタを返す)rbeginを(さ
削除()リストから要素を削除
(remove_if)を要素指定された条件を削除
レンドにリスト逆イテレータの最後に()点
のリストサイズに変更するサイズ変更()
の逆()反転要素のリスト
)(サイズは、リスト内の要素の数を返します数
種の()は、リストのソートする
(スプライス)の2つのリストをマージ
スワップ()2つのリストスワップ
リスト内の重複する要素を削除するにはUNIQUE()を

バグ
必要下記のコードでは、反復子ITERの定義ことに留意されlist<int>::iterator iter;、以下のように、このような使用が報告される場合、メソッド定義反復子がメイン機能でコンパイルされたとき、しかしput_listイテレータで定義された関数間違っている、あなたは以前を使用する必要があるtypedef list<int> INLIST;INLIST::iterator iter;私はなぜ知りません

/home/jlm/桌面/main.cpp:16:7: error: expected primary-expression before ‘int’
  list<int>::iterator iter;

サンプルコードの共通の1-

#include <iostream>
#include <string>
#include <list>

using namespace std;
typedef list<int> INLIST;

//从前向后显示list队列的全部元素
void put_list(list<int> list,string name)
{
	if(list.empty())
	{
		cout<<"list--"<<name<<"is empty!"<<endl;
		return;
	}
	INLIST::iterator iter;
	
	cout<<"The contents of "<<name<<":";
	for(iter=list.begin();iter!=list.end();iter++)
		cout<<*iter<<" ";
	cout<<endl;
}

//测试list容器的功能
int main(void)
{
	//三种初始化list的方式
	//list1对象初始为空
	list<int> list1;
	//list2对象最初有10个值为6的int元素
	list<int> list2(10,6);
	//list3对象最初有3个值为6的int元素
	list<int> list3(list2.begin(),--list2.end());

	//声明一个名为iter的迭代器
	list<int>::iterator iter;

	//从前向后显示各个list对象的元素
	put_list(list1,"list1");
	put_list(list2,"list2");
	put_list(list3,"list3");

	//向list1序列后面添加两个元素
	list1.push_back(2);
	list1.push_back(4);
	cout<<"list1.push_back(2) and list.push_back(4): "<<endl;	
	put_list(list1,"list1");

	//在list1序列中插入数据
	list1.insert(++list1.begin(),3,9);
	cout<<"list1.insert(list1.begin()+1,3,9): "<<endl;

	//测试引用类函数
	cout<<"list1.front()= "<<list1.front()<<endl;
	cout<<"list1.back()= "<<list1.back()<<endl;

	//从list1序列的前后各移去一个元素
	list1.pop_front();
	list1.pop_back();
	cout<<"list1.pop_front() anf list1.pop_back(): "<<endl;
	put_list(list1,"list1");

	//清除list1中的第二个元素
	list1.erase(++list1.begin());
	cout<<"list1.erase(++list1.begin()): "<<endl;
	put_list(list1,"list1");

	//对list2赋值并显示
	list2.assign(8,1);
	cout<<"list2.assign(8,1): "<<endl;
	put_list(list2,"list2");

	//显示序列的状态信息
	cout<<"list1.max_size(): "<<list1.max_size()<<endl;
	cout<<"list1.size(): "<<list1.size()<<endl;
	cout<<"list1.empty(): "<<list1.empty()<<endl;

	//list序列容器的运算
	put_list(list1,"list1");
	put_list(list3,"list3");
	cout<<"list1>list3: "<<(list1>list3)<<endl;
	cout<<"list1<list3: "<<(list1<list3)<<endl;
	
	//对list1容器排序
	list1.sort();
	put_list(list1,"list1");
	
	//结合处理
	list1.splice(++list1.begin(),list3);
	put_list(list1,"list1");
	put_list(list3,"list3");
}

2 -listの比較例コード

#include <iostream>
#include <string>
#include <list>

using namespace std;
typedef list<int> INLIST;

//从前向后显示list队列的全部元素
void put_list(list<int> list,string name)
{
	if(list.empty())
	{
		cout<<"list--"<<name<<"is empty!"<<endl;
		return;
	}
	INLIST::iterator iter;
	
	cout<<"The contents of "<<name<<":";
	for(iter=list.begin();iter!=list.end();iter++)
		cout<<*iter<<" ";
	cout<<endl;
}

//测试list容器的功能
int main(void)
{
	//三种初始化list的方式
	//list1有1个值为9的元素
	list<int> list1(1,9);
	//list2对象最初有3个值为6的int元素
	list<int> list2(3,6);

	cout<<"(list1(1,9)>list2(3,6)): "<<(list1>list2)<<endl;

	//list3有3个值为6的元素
	list<int> list3(3,6);
	//list2对象最初有3个值为6的元素
	list<int> list4(3,6);
	cout<<"(list3(3,6)>list4(3,6)): "<<(list3>list4)<<endl;

	//list5有4个值为6的元素
	list<int> list5(4,6);
	//list6对象最初有3个值为6的元素
	list<int> list6(3,6);
	cout<<"(list5(4,6)>list6(3,6)): "<<(list5>list6)<<endl;

	//list7有4个值为6的元素
	list<int> list7(100,1);
	//list8对象最初有3个值为6的元素
	list<int> list8(3,6);
	cout<<"(list7(100,1)>list8(3,6)): "<<(list7>list8)<<endl;
}
(list1(1,9)>list2(3,6)): 1
(list3(3,6)>list4(3,6)): 0
(list5(4,6)>list6(3,6)): 1
(list7(100,1)>list8(3,6)): 0

二つのリストの得られた結果を分析することができるから、(LIST1> LIST2)結果1つのアウトずつ、サイズ比較の対応する要素タイプの比較の結果を比較して、結果のサイズが返された場合に発生します。

おすすめ

転載: blog.csdn.net/qq_34122731/article/details/90733111