1. 程式人生 > >STL學習_vector_1

STL學習_vector_1


#include <iostream>
#include <vector>
using namespace std;

void vector_int_printf(vector<int> v)                  //列印存入int型別的vector的資料
{
	vector<int>::iterator v_end = v.end();
	for (vector<int>::iterator v1 = v.begin(); v1 != v_end; v1++)
	{
		cout << *v1 << " ";   //d迭代器相當於是一個指標,加*表示相應位置所存的資料
	}
}

//列印存入chart型別的vector的資料,可能這種做法是個很蠢得做法                              				      
//吧,應該可以有一個通用的函式來解決vector資料的輸出

void vector_char_printf(vector<char> v)        

{
	vector<char>::iterator v_end = v.end();
	for (vector<char>::iterator v1 = v.begin(); v1 != v_end; v1++)
	{
		cout << *v1 << " ";
	}
}
void do_int()           //對vector<int>的處理函式
{
	int max;
	vector<int> v;
	cout << "建立vector<int>\t";
	cout << "輸入vector<int> 的大小\t";
	cin >> max;
	cout << "輸入vector<int> 的初始資料" << endl;
	for (int i = 0; i < max; i++)
	{
		int temp;
		cin >> temp;
		v.push_back(temp);
	}
	vector_int_printf(v);
}
void do_char()            //對vector<char>的處理函式
{
	int max;
	vector<char> v;
	cout << "建立vector<char>\t";
	cout << "輸入vector<char> 的大小\t";
	cin >> max;
	cout << "輸入vector<char> 的初始資料" << endl;
	for (int i = 0; i < max;i++)
	{
		char temp;
		cin >> temp;
		v.push_back(temp);
	}
	vector_char_printf(v);
}

void show_int_char()          //為了好看做出來的一個簡單到極致的介面
{
	int chose;
	int over = 1;
	while (over == 1)
	{
		system("cls");
		cout << "*****************主介面******************" << endl;
		cout << "選擇容器的型別 " << endl;
		cout << "1 : int" << endl;
		cout << "2 : char" << endl;
		cout << "*****************************************" << endl;
		cin >> chose;
		switch (chose)
		{
		case 1:
			cout << "選擇了int型別" << endl;
			do_int();
			break;
		case 2:
			cout << "選擇了char型別" << endl;
			do_char();
		default:
			cout << "錯誤:未知型別" << endl;
			break;
		}
		cout << "結束程式嗎?1:繼續  0:結束" << endl;
		cin >> over;
	}
	system("pause");
}

int main()
{
	show_int_char();
	system("pause");
}