vector和bitset使用例子

vector是一個容器,可以看做是一個大小可變化的數組,所以其特性有:

1)大小可變

2)容器內的數據成員只允許是一種;

3)由於vector提供的接口的特性,他可以當做棧來使用

bitset則是用來方便實現二進制的位操作而設計的庫,比較簡單。

代碼示例如下:

// Vector.cpp : 定義控制檯應用程序的入口點。
//vector的使用實例

#include "stdafx.h"
#include <iostream>
#include <vector>
#include <ctime>
#include <bitset>
using namespace std;

int main(int argc, _TCHAR* argv[])
{
	srand(clock());
	
	//聲明變量
	//sizeof(rand_number)是固定的,不隨其元素個數變化
	vector<int> rand_number;

	//產生10個隨機數
	cout << "產生10個100以內的隨機數:" << endl;
	for( int i=0; i<10; i++ )
		rand_number.push_back(rand()%100);
	//輸出結果,採用下標索引的方式訪問,但是可以通過索引來增加元素
	for( vector<int>::size_type i=0; i<rand_number.size(); i++ )
		cout << rand_number[i] << "  ";
	cout << endl;
	//通過下標索引可以修改vector內的元素

	//修改元素內容
	cout << "把首元素改成-1後的結果:" << endl;
	if( !rand_number.empty() ) rand_number[0] = -1;
	//輸出通過下標索引修改後的結果
	for( vector<int>::size_type i=0; i<rand_number.size(); i++ )
		cout << rand_number[i] << "  ";
	cout << endl;

	//刪除後面的元素
	cout << "刪除後面的元素,使得vector內的元素不大於5個:" << endl;
	while(rand_number.size() > 5)
	{
		rand_number.pop_back();//把最後的元素移除
	}
	//輸出刪除元素後的結果,通過迭代器輸出結果
	//end返回的是vector的最末端的下一個元素,指向一個不存在的元素
	for( vector<int>::iterator i=rand_number.begin(); i!=rand_number.end(); i++ )
		cout << *i << "  "; //通過*(解引用操作符,像C語言中的間訪)來讀取元素值
	cout << endl;

	//通過迭代器修改元素值,定義的const_iterator只支持訪問,不允許修改
	cout << "迭代器修改元素值:" << endl;
	*rand_number.begin() = 101;//修改首元素
	vector<int>::iterator e = --rand_number.end();
	*e = 110;//修改最好一個元素
	for( vector<int>::iterator i=rand_number.begin(); i!=rand_number.end(); i++ )
		cout << *i << "  ";
	cout << endl;

	//bitset的使用
	bitset<15> bit;
	cout << "默認的bitset值:" << endl;
	//默認初始化都爲0,可以分別使用unsigned和string初始化
	cout << bit << endl;
	//計算bit中1的個數
	cout << "bit中1的個數爲:" << bit.count() << endl;
	//都置爲1
	bit.set();
	cout << "置1後,bit中1的個數爲:" << bit.count() << endl;
	//都置爲0
	bit.reset();
	cout << "置0後,bit中1的個數爲:" << bit.count() << endl;
	//將bit的每一位都置反
	bit.flip();
	cout << "置反後,bit中1的個數爲:" << bit.count() << endl;

	
	getchar();
	return 0;
}

運行結果:


發佈了80 篇原創文章 · 獲贊 12 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章