IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> Vector容器学习一看就会的测试用例 -> 正文阅读

[开发测试]Vector容器学习一看就会的测试用例

大家好呀!最近在家里闲来无事,deidei便想着想要学点什么。
于是便整理了一下vector容器的用法。
要想熟练掌握一个工具的用法,感觉光靠看网上的解释和用法总感觉还是无法系统的去了解vector的用法,多多少少还是感觉知识有些被碎片化。
还是自己动手来写一下才能熟练掌握,毕竟“实践出真知”嘛!于是便自己写了一个测试用例来展示vector各个函数的用法。写完了一下之后果然是对于vector的用法感到更加熟练了呢!
接下来贴上这段代码,希望对初学vector的小伙伴有所帮助。(不过还是希望大家能自己动手多写写,不要总是依赖网上的例子)

#include<iostream>
#include<vector>
#include<string>
using namespace std;
//vector容器的学习,以及其测试用例
void to_be_continued(const char* promp)
{
	cout << promp << endl;
	char c = 0;
	while (c != '\n') {
		c = getchar();
	}
}
//写一个函数用于输出一个vector容器中的所有元素
//这个地方采用模板,从而可以输出各种类型的vector
template<typename T>
void PrintAll(const char* promp,const vector<T> v)
{
	//顺便在这边展示一下v.begin()和v.end()的用法
	//本质上v.begin()返回的是vector容器的首个元素地址,v.end()返回的是vector容器最后一个元素的地址
	cout << promp;
	//typename vector<T>::iterator i;
	//_Vector_const_iterator<_Vector_val<_Simple_types<int>>> i
	for (auto i = v.begin(); i != v.end(); i++) {
		cout << *i<<" ";
	}
	cout << endl;
}
int main()
{
	//希望自己写一个,这样可以加深对于vector使用方法的印象
	
	if (1) {
		to_be_continued("下面开始示范构造vector容器,按回车继续......");
		vector<int> vi;//构造了一个空的vector容器
		vector<int> vi1(5, 6);//构造了一个类型为int,有5个值,且5个值均为6的容器
		vector<char> vc(5, 'a');//构造了一个类型为char,有5个值,且5个值均为'a'的容器
		vector<string> vs(5, "hello");//构造了一个类型为string,有5个值,且5个值均为'a'的容器
	    //拷贝构造
		vector<int> cvi1(vi1);//将前面已有的容器原封不动的拷贝过来
		//运用迭代器赋值
		char arr[3] = {'a','b','c'};
		vector<char> arr_v(arr,arr+3);

		//将他们输出看看是否和预期一样
		PrintAll("vector<int> vi构造实际输出:",vi);
		PrintAll("vector<int> vi1(5, 6)构造实际输出:", vi1);
		PrintAll("vector<char> vc(5, 'a')构造实际输出:", vc);
		PrintAll("vector<string> vs(5, \"hello\")构造实际输出:", vs);
		PrintAll("vector<int> cvi1(vi1)构造实际输出:", cvi1);
		PrintAll("vector<char> arr_v(arr,arr+3)构造实际输出:", arr_v);

		cout << endl;
		to_be_continued("构造vector容器示范结束,按回车继续......");
	}

	if (1) {
		to_be_continued("下面开始测试front()和back()的使用,按回车继续......");
		//front()用于返回vector容器内存储的第一个元素,back()用于返回vector容器内最后一个元素
		vector<int> v = { 1,2,3,4 };
		cout << "v.front()应当输出1,实际输出:" << v.front() << endl;
		cout << "v.back()应当输出4,实际输出:" << v.back()<<endl;

		to_be_continued("测试front()和back()的使用结束,按回车继续......");
	}

	if (1) {
		to_be_continued("下面开始测试size()、resize()、capacity(),empty()的使用,按回车继续......");
		//
		vector<char> hello = { 'h','e','l','l','o' };
		cout << "输出hello.size(),应当输出5,实际输出:" << hello.size() << endl;

		hello.resize(10);//改变他的大小

		cout << "hello.resize(10),hello.capacity应当输出10,实际输出:" << hello.capacity() << endl;
		cout << "hello.size()此时应当输出10,实际输出:" << hello.size() << endl;

		cout << "hello.empty()应当输出0,实际输出:" << hello.empty() << endl;

		hello.resize(15,'!');//改变他的大小,并在后面多出来的5个位置补上指定的字符
		PrintAll("hello.resize(15,'!'),实际输出:", hello);

		hello.resize(0);
		cout << "hello.empty()应当输出1,实际输出:" << hello.empty() << endl;

		to_be_continued("按回车继续......");
	}
	//要想搞钱,首先得提升技术硬实力
	if (1) {
		//下面演示push_back(),pop_back(),swap()
		to_be_continued("下面开始测试push_back(),pop_back(),swap()的使用,按回车继续......");
		vector<char> vc;
		for (int i = 0; i < 26; i++) {
			vc.push_back('A' + i);
		}
		PrintAll("试验push_back,26个字母:", vc);

		for (int i = 0; i < 13; i++) {
			vc.pop_back();
		}
		PrintAll("试验pop_back,删去末尾13个字母:", vc);

		vector<char> hell = {'h','e','l','l'};
		PrintAll("打印交换前hell:", hell);
		PrintAll("打印交换前的vc:", vc);

		vc.swap(hell);

		PrintAll("打印交换后的hell:", hell);
		PrintAll("打印交换后的vc:", vc);

		to_be_continued("按回车继续......");
	}

	if (1) {
		//下面演示逆序输出,利用rbegin(),rend()
		to_be_continued("下面开始测试rbegin(),rend()的使用,按回车继续......");

		vector<int> vi = { 1,2,3,4,5,6,7,8,9,0 };

		PrintAll("正序输出:", vi);

		cout << "下面展示逆序输出:";
		for (auto i = vi.rbegin(); i != vi.rend(); i++) {
			cout << *i << " ";
		}

		to_be_continued("按回车继续......");
	}

	if (1) {
		//下面演示erase(),insert(),clear()
		to_be_continued("下面开始测试erase(),insert(),clear()的使用,按回车继续......");

		vector<int> vi = { 1,2,3,4,5 };
		PrintAll("vi原来的样子:", vi);
		//进行erase()
		vi.erase(vi.begin());
		PrintAll("vi删去第一个元素之后:", vi);
		//进行insert()
		vi.insert(vi.begin(), 1);
		PrintAll("vi把第一个元素加上去之后:", vi);
		//进行clear()
		vi.clear();
		cout << "用clear()成员函数之后,查看empty()的值:" << vi.empty()<<endl;

		to_be_continued("按回车继续......");
	}

	if (1) {
		//下面演示重载运算符,以及at()的使用
		to_be_continued("下面开始测试p重载运算符,以及at()的使用,按回车继续......");
		//演示[],以及at()
		vector<char> china = { 'c','h','i','n','a' };
		cout << "输出china,用下标的方式逐项输出:" << endl;
		for (int i = 0; i < 5; i++) {
			cout << china[i] << " ";
		}

		cout <<endl<< "输出china,用at()的方式逐项输出:" << endl;
		for (int i = 0; i < 5; i++) {
			cout << china.at(i)<< " ";
		}

		cout << endl;
		to_be_continued("按回车继续......");
	}
	return 0;
}

  1. 在vector中要想要遍历vector的所有元素,有以下几种方法:(目前发现的,或许还有其他方法)
    法一:用迭代器定义指针i(注意点:别忘了在vector::iterator前面加typename,不然会报错)
template<typename T>
 void traverse(const vector<T> v)
{
//直接用
	typename vector<T>::iterator i;
	for (i = v.begin(); i != v.end(); i++) {
		cout << *i<<" ";
	}
	cout << endl;
}`

法二:用自动变量auto,最不容易出错,也是最适用于遍历容器的方法

template<typename T>
 void traverse(const vector<T> v)
{
	for (auto i = v.begin(); i != v.end(); i++) {
		cout << *i<<" ";
	}
	cout << endl;
}

法三:用原始方法:

template<typename T>
 void traverse(const vector<T> v){
    for(int i=0;i<v.size();i++){
        cout<<v[i]<<" ";
    }
}

希望以后可以继续坚持一边学习,一边写博文记录总结吧!
把在学习中的一些所见所想分享出来,一方面是督促自己这个小白加懒虫每天学点新知识的习惯,记录下自己的成长,另一方面也希望可以结交更多志同道合的小伙伴,在编程这条路上越走越远!
加油加油!!

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-21 15:46:10  更:2021-08-21 15:46:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 9:10:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码