C++基础入门——Vetor与函数
1. Vector
Vector其实很大程度上和数组一样,只是,数组是固定长度,而vector是不定长度(动态增长)。 假设我们需要记录明年的测试成绩,但是我们并不知道明年会有多少个学生。那么可以有两种选择,定义一个固定长度的数组,这个长度超过假设的长度, 另一种办法就是使用动态数组,比如是: vector
vector 在C++STL(标准模板库)中的一个容器,可以看成是对容器的一种扩展。在运行时可以改变长度 , 与数组具有相似的语法 , 相比数组更高效 , 提供越界检查。
使用vector除了要导入#include
之外,由于它声明于std命名空间里面,所以要配合std命名空间使用。
#include <iostream>
#include <vector>
using namespace std;
int main(){
//定义: vector <变量类型> 变量名 {变量值};
vector<char> name {'a','b','c'};
//数组方式访问
cout << "name: " <<name[0] << endl;
//使用.at()方法访问,越界会抛出异常
cout << "name: " <<name.at(1) << endl;
//修改vector中的元素
name.at(1) = 'd';
cout << "name: " << name.at(1) << endl;
//向vector中增加元素
name.push_back('e');
cout << "name: " << name.at(3)<< endl;
vector<int> test_score {100,90,85};
cout << "第一个成绩是: " <<test_score[0] << endl;
cout << "第二个成绩是: " <<test_score[1] << endl;
cout << "第三个成绩是: " <<test_score[2] << endl;
cout << "第三个成绩是: " <<test_score[3] << endl; //不会检查越界
// 使用下标遍历
for(int i=0;i<name.size();i++){
cout << "name: " << name.at(i)<< endl;
}
//使用for范围遍历
for (char i: name){
cout << "name: " << i<< endl;
}
//二维vector 定义: vector <vector<变量类型>> 变量名 {{变量值}};
vector<vector<int>> score{
{95,77,80,85},
{100,78,82,83},
{96,79,83,85},
{97,80,84,85}
};
for (int i=0;i<score.size();i++){
for(int j=0;j<score[i].size();j++){
cout<<score[i][j]<<"\t";
}
cout<<endl;
}
return 0 ;
}