本文介绍以下内容:如何创建动态数组,如何使用向量,如何使用迭代器,define如何定义函数,函数如何返回复杂类型,STL中的快速排序。final关键字。
- 动态数组
- int n;
- n=10;//此处可以把用户从界面上输入的值赋值给n。
- int *p=int a[n];
- //给数组赋值
- for(int i=0;i<n;i++)
- {
- a[i]=i;
- }
- //打印数组
- for(int i=0;i<n;i++)
- {
- std::cout<<a[i]<<endl;
- }
然而这种动态创建还称不上真正意义上的动态。因为我们总归还是要输入一个值来告诉系统应该分配多少的内存,我们想要的效果是,不必告诉系统要给这个结构体分配多少内存,当存入或删除某个数值后,系统能够自动地对内存增加或减少。要实现这样的效果,就要用到了下面的“向量”的概念。
2.向量(vector)与迭代器(iterator)
向量可以看作数组与链表的结合,能够实现真正的动态分配内存。而它与迭代器配合使用更是将其易用性提升到了极致。
- //标准库里的每一个容器都支持迭代器
- //向量的函数原型是std::vector<type> vectorName;
- //定义
- #include<iostream>
- #include<string>
- #include<vector>
- #include<algorithm>//用于排序
- std::vector<std::string> vHobbies;
- //赋值
- vHobbies.push_back("烫头");
- vHobbies.push_back("抽烟");
- vHobbies.push_back("喝酒");
- //比较low的输出方式
- for(int i =0;i<vHobbies.size();i++)
- {
- //此时输出排序前的向量:烫头,抽烟,喝酒
- std::cout<<vHobbies[i]<<endl;
- }
- auto iter=vHobbies.begin();//auto用法是C++最新标准中的自动类型
- std::sort(vHobbies.begin(),vHobbies.end());//将向量中的各项按字母表的顺序排列
- //比较diao的输出方式
- while(iter!=vHobbies.end();iter++)
- {
- //此时输出排序后的向量:抽烟,喝酒,烫头
- std::cout<<*iter<<endl;
- }
- #define PTR_NULL(p) { assert(p); if (0 == p) { return; } }
- #define PTR_BOOL(p) { assert(p); if (0 == p) { return false; } }
4、函数如何返回多个值。
- 根据要返回的多个值创建一个结构体,返回这个结构体。不赘述。
- 利用引用作为函数参数。看下面的代码示例
- int function(int &a,int &b,int &c)
- {
- b=a+8;
- c+a+12;
- }
- int main()
- {
- int x,y,z;
- x=1;y=0;z=0;
- function(x,y,z);
- //此时可以把x看作是输入的值,y和z看作是函数的返回值。
- cout<<y<<" "<<z<<endl;
- //此时输出的y的值是9,z的值是13。
- }
5、final关键字
C++中final关键字是C++11新增的,作用为:
a.作用于类:阻止一个类成为基类,即不允许扩展该类。
b.作用于虚方法:阻止派生类覆盖此虚方法。
————————————————版权声明:本文为CSDN博主「leyou2018」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35488967/article/details/57089494