C++ STL标准模板库(vector)
2016-07-13 10:52
323 查看
//vector的使用 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<vector> using namespace std; /* 引用头文件 #include<vector> vector类本身是一个类模板 vector类模板是一个线性顺序结构。相当于数组。它可以像数组一样被操作,由于它的特性我们完全可以将vector 看作动态数组。 */ class Student{ public: int age; char name[30]; }; void ProtectA(){ //定义一个int类型的动态数组 数组元素为0 vector<int> v1; //vector类模板重载了[]操作符 //添加元素 //v1[0] = 2; 报错: out of range 超出数组范围, //这说明:vector<int> 数组类模板定义初始长度为空时,添加元素就会报错 vector<int> v2(5); //v2[5] = 12; 报错: out of range 超出数组范围, /* 小结:vector<int> 数组类模板的初始化长度是固定的 不可以动态添加 */ for (int i = 0; i <5; i++) { v2[i]=i+1; } vector<int> v3(2); //vector<int> 数组类模板重载=操作符 v3 = v2; /* 此时v3的长度变成5,可以认为v3的长度发生变化,数据也发生变化 */ //size()获取vector数组的长度 v2[0] = 100; /* v2改变对v3没有影响 */ int numx = v3.size(); for (int i = 0; i <5; i++) { cout << v3[i] << endl; } } void Print(vector<Student> &v){ int num = v.size(); for (int i = 0; i < num; i++) { cout << "学生姓名:" << v[i].name << ";学生年龄是:" << v[i].age << endl; } } void ProtectB(){ Student s1,s2,s3; s1.age = 12; strcpy(s1.name, "小米"); s2.age = 14; strcpy(s2.name, "小红"); s3.age = 16; strcpy(s3.name, "小刚"); vector<Student> vs(3); vs[0] = s1; vs[1] = s2; vs[2] = s3; Print(vs); } void main(){ ProtectB(); system("pause"); }
相关文章推荐
- C++Primer(5th)学习-数组篇
- 关于c++ 学习
- 求5阶矩阵其对角线上所有元素之和
- inf & nan
- C++中typename和class的区别
- <<More Effective C++>>读书笔记1: 基础议题
- C++建立及销毁链表
- c++多态
- C++中 overload 、override、overwrite 之间的区别
- 排序算法系列---快速选择排序(C++)
- C语言中lseek()函数和fseek()函数的使用详解
- Static关键字所有用法详解
- c/c++ 动态内存配置的使用原则
- C语言 程序 画圆、画圆和y=x^2
- Leetcode 7. Reverse Integer (Easy) (cpp)
- 《C和指针》总结
- C语言的fopen函数(文件操作/读写)
- Java中调用c/c++语言出现Exception in thread "main" java.lang.UnsatisfiedLinkError: Test.testPrint(Ljava/lang/String;)V...错误
- c++运算符重载总结
- C语言的编译原理及过程