[STL标准库]240308练习

标准输入输出

#include <iostream>
#include <bits/stdc++.h> 
using namespace std;


void Test1(){
	int i;char c;double d;string s,s1;
	ios::sync_with_stdio(false);//关闭c语言流的链接 
	cin.tie(0);//关闭cin和cout的链接 
	cin >> i >> c >> d >> s;
	cin.get();//混合getline使用时,用来吃掉cin产生的换行符,避免被getline读到 
	cout << i << ' ' << c << ' ' << d << ' ' << s; 
	getline(cin,s1,@);//可以读取一整行包括空格,并以@结尾 
	cout << s1;
}


void Test2(){
	//字符串流
	string s2="123456 654321";
	stringstream ss;
	ss << s2;
	int sint1,sint2;
	ss >> sint1 >> sint2;
	cout << sint1  << sint2; 
	ss.clear();//清流,避免下次使用出现残留数据 
}

int main(){
	//Test1();
	Test2();
	return 0;
}

容器

#include <bits/stdc++.h>
#include <stack>

using namespace std;

//栈
void Test1(){
	stack <int> sta;
	sta.push(1);
	sta.push(2);
	//sta.emplace(2);
	cout << sta.top() <<endl;
	for(int i=0;i <= sta.size(); i++) sta.pop();    
	if (sta.empty()) cout << "stack empty!";
}

//队列
void Test2(){
	queue <int> que;
	que.push(1);
	que.push(2);
	cout << que.size() << endl;
	while(!que.empty()){
		cout << que.front() << ' ';
		que.pop();
	}
}

//单向链表
void Test3(){
	list <int> li;
	list<int>::iterator it;
	for(int i=0;i<10;i++){
		li.insert(li.begin(),i);
		for(it = li.begin();it != li.end();it++)cout<< *it << ' ';
		cout<<endl;
		li.insert(li.end(),i);
		for(it = li.begin();it != li.end();it++)cout<< *it << ' ';
		cout<<endl;
	}
	cout<< li.size() << endl;
	while(!li.empty()){
		cout << li.front() << li.back() << endl;
		li.erase(li.begin());
	}
} 


//双端队列 (栈和队列都是它的派生类) 
void Test4(){
	int n[10]={0,1,2,3,4,5,6,7,8,9};
	//deque<int> deq_cope(10,1);
	//deque<int> deq_cope(n,n+10);
	deque<int> deq_cope(&n[1],&n[9]);//左闭右开区间 
	
	/* 
	//c++11 
    deque<int> deq {1, 2, 3, 4, 5, 6};
    deque<int> deq_cope {begin(deq),end(deq)-2};
    */
    for(int i = 0;i<deq_cope.size();i++){
    //cout << deq[i] << endl;
    cout << deq_cope.at(i);
	}
} 


int main(){
	//Test1();
	//Test2();
	Test3();
	//Test4();
	return 0;
}
posted @ 2024-03-08 20:32  (ToT)  阅读(52)  评论(0)    收藏  举报