STL学习笔记--数组(vector)

  • 数组不可越界操作
  • 函数操作多为迭代器,与string有用下表不同
    头文件:vector

1.定义

1. 定义向量的对象

关键字<参数列表> 变量名
关键字:容器名字–类名
参数列表:容器的数据类型
2. 容器的数据类型
基本数据类型:eg:int、char……(本质和string一样)
结构体
指针
对象:普通类对象(同结构体)、其他容器对象

(string没有参数列表:string是针对字符串的,转定义后看到string是重命名,本质是有参数列表的)

void STLDefine(){
    //基本数据结构
    vector<int> vec;
    vector<char> str; //相当于string,string专门放char,对字符操作功能更多更强

    //结构体
    struct STU{
        int age;
    };
    vector<STU> stu1;
    vector<struct STU> stu2;

    //指针
    vector<int*> vec1;

    //对象
    vector<string> str1;//每一个都是字符串==字符串数组
}

2.构造函数

vector();
vector( size_type num, const TYPE &val );
vector( const vector &from ); 拷贝构造,元素同类型
vector( input_iterator start, input_iterator end ); 迭代器初始化

void STLConstructor(){
    vector<int> vec; //空容器
    //cout<<vec[0];   //空容器输出崩溃

    vector<int> vec1(5);
    for(int i=0;i<5;i++) cout<<vec1[i]<<endl;   //00000 初始化为0
    //cout<<vec1[6]<<endl;    //越界输出崩溃

    vector<char> vec2(5,'a');
    for(int i=0;i<5;i++) cout<<vec2[i]<<endl;

    vector<int> vec3(vec1);	//参数类型要相同不然会崩溃
    for(int i=0;i<5;i++) cout<<vec2[i]<<endl;

    vector<int> vec4(5,1);
    vector<int>::iterator ite=vec4.begin();//定义了向量的迭代器,返回迭代器头
    vector<int>::iterator ite1=vec4.end();   //ite 为元素类型的指针(int*、char*、结构体*)
    vector<int> vec5(it
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值