C++基础知识部分之三

1.数组

        一般数组就是我们平常看到的数组,比如int a[100],int b[10][10],这种数组在C语言还C++里是通用的,但是C++里面有一种大小固定的容器 std::array。

       这个array容器知道自身大小;不会自动转换为指针;具有迭代器,能够很方便的遍历元素。

使用时代码如下:

#include<iostream>
#include<array>
using namespace std;
int main()
{
array<int,6> arr={1,2,3,4,5,6};
cout<<"Array size= "<<arr.size()<<endl;
cout<<"Element 2= "<<arr[1]<<endl;
return 0;
}

无论是C风格的数组还是C++风格的数组,编译器都必须知道数组的大小,在运行时数组的大小不能改变。

但是如果希望数组的大小是动态的可以使用std::vector。


2.基于区间的for循环

基于区间的for循环是除了for循环,while循环以及do/while循环的第四种循环。

std::array<int,3> arr={1,2,3};

for(int i : arr)

{

std::cout<<i<<std::endl;

}


3. 函数

当程序变得比较大了以后,将所有的代码都放到主函数里是不行的,因此我们可以定义其他函数:

例如 int add(int number1,int number2);

有返回类型,参数一和参数二。

每个函数都有一个预定义的局部变量__func__,static const char __func__[ ]="function-name";

#include<iostream>
using namespace std;
int add(int,int);
int main()
{
cout<<add(2,3)<<endl;
}
int add(int number1,int number2)
{
cout<<"Entering function: "<<__func__<<endl;
return number1+number2;
}

输出结果为:

Entering function: add

5


3.1 替代的函数语法

auto func(int i) ->int(->叫拖尾)

{

return i+1;

}

函数的返回类型不在位于开头而是位于行位的箭头->后面。main函数也可以使用这种替代语法。


3.2 函数返回类型的推断

C++14允许要求编译器自动推断出函数的返回类型,格式为 auto func(),并且忽略所有拖尾的返回类型;

auto fuc(int number1,int number2)

{

return number1/number2;

}


3.3 类型推断

类型推断允许编译器自动推断出表达式的类型。类型推断的关键字有两个:auto和decltype。

auto有四种用途:

用途一:前面介绍的替代函数语法

用途二:前面介绍的函数返回类型的推断

用途三:用于通用的lambda表达式(后面会介绍)

用途四:自动推断变量的类型。

对用途四进行介绍:

如果函数func有一个复杂的函数返回类型,例如可以返回int也可以返回double是我们就可以使用:

auto result=func();

让编译器推断返回的类型。


关键字decltype

关键字decltype把表达式作为实参,计算该表达式的类型。例如:

double x=10.1;

decltype(x) y=23;

此时编译器推断出y的类型为double。


使用auto推断表达式的类型,就不需要引用限定符和const限定符了,就是说auto去除了引用和const限定符。另外decltype没有去除这些限定符,但可能导致代码重复。(不太明白怎么用,以后看明白了回来重新改)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值