03c++基础知识vector

  1. Vector是一组通过索引来访问顺序存储中的数据元素。
    用Vector名和索引号组合,例如,v[0],v[6].
    Vector的索引是从0开始的。
    Vector知道自己的大小,即Vector既存数据元素,也存数据个数。
 vector<int> v = {2,4,6,8,10};

定义一个vector需要确定定义数据类型和始集,数据类型放在vector<>中,且每个vector的数据集类型是一致的。
当给定一个vector定义后(并未指定数据元素值),根据数据类型的不同,它的每个数据元素将赋予不同的缺省值。

vector<int> vi(4);//初始化为0
vector<string> vs(6);//初始化为“”

遍历一个vector

vector<int> v = {2,4,5,6};
for(int i = 0; i < v.size(); ++i)
	cout<<v[i]<<"\n";

范围for循环,一般用于对元素序列做一次遍历的情形

vector<int> v = {1,2,3,4};
for(int i:v)
	cout<<i<<"\n";

2.vector空间增长
在使用vector时,我们一般先定义,再填充值,这里一般用到push_back().
push_back(),将一个新元素添加到vector中,并且是放在vector的尾部。类似于链表的尾插法。因此vector不需要事先知道要存储数据大小是多少,而且可以往vector中任意添加不同个数的元素。
push_back()添加元素到vector中

vector<int> v;//定义,未初始化
v.push_back(1);
v.push_back(2);
v.push_back(3);

push_back()是vector的一个成员函数,调用成员属性用“.”
对象名.函数名(参数名);
vector类似于C语言或其他编程语言中的数组
3.数值读入

#include <iostream>
#include <vector>
#include <algorithm>
#include <string>

using namespace std;

int main(){
	
	//用一个容器存放输入的温度值
	vector<double> v;
	for (double temp; cin >> temp;)
		v.push_back(temp);
	//计算均值
	double sum = 0;
	for (double temp : v)
		sum += temp;
	cout << "the arverage is " << sum / v.size() << "\n";
	//计算中位数
	sort(v.begin(),v.end());
	//sort()对vector容器的排序,可以是一维的,也可以是二维的,要用v.begin(),V.end()
	cout << "the middle is " << v[v.size() / 2] << "\n";
	//我们假设读入温度值,读入到v中,如果正确输入数据,cin>>temp,返回true,否则返回false。
//因此,for循环读入我们输入的所有double值,直到读入的值不是double
//例如,我们输入1.1 2.2 3.3 4.4. 5.5 6.6 |,这里的|不是double类型
//我们也可以用CTRL+Z,它代表的是end-of-file,表示结束输入流,在输入流中,stream状态称为iostate的常量,有四个标志flag:
//goodbit,一切都好
//eofbit,end-of-file
//failbit,错误,某个I/O动作未完成
//badbit,毁灭性错误,造成不确定状态
//当他使用ctrl+Z结束时,在缓冲区中就有了eofflie标志,我们在下边的words读取数据时,流被终止,所以中间加入了std::cin.clear();
//cin.clear():清楚与它当前流相关的标志,默认是goodfile,它清楚所有标志,否则清除指定标志

	std::cin.clear();

	vector<string> words;
	for (string temp01; cin >> temp01;)
		words.push_back(temp01);
	cout << "the numbers of words is" << words.size() << "\n";

	sort(words.begin(), words.end());

	for (int i = 0; i < words.size(); ++i)
		if (i == 0 || words[i - 1] != words[i])
			cout << "the words are " << words[i] << "\n";
			//这里的string字符串比较,可以用“!=”“==”“>”">=""<""<="来比较
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值