C++问题笔记

发布于:2024-04-27 ⋅ 阅读:(22) ⋅ 点赞:(0)

1、变量

1.1 size_t、auto、int之类的类型声明如何确定

{
size_t是unsigned int的别名(为了跨平台,为了能保存足够大的非负整数),auto是类型推导的别名,int是int类型的别名。
size_t和auto都是用来声明变量类型的,但auto的类型推导更灵活,在C++11中,auto是用来自动推导表达式或变量的实际类型的,是一个C语言关键字,适用于变量类型复杂情况。
int是整数类型,size_t是unsigned int类型,auto是自动推导类型。
}

1.2、const

const的用法{
const是一个类型限定符:它是一个应用于数据类型的关键字,表示该数据是只读和恒定不变;
类似于C语言中的 #define,但const应用范围更广,能够明确指定类型,还能够限定作用范围;
}

2、函数

2.1 for循环

for循环的用法:{包含多种类型:不限于普通的、基于范围的、for_each等}

2.1.1 普通的for循环

for(init;test;update){
  statement
}
init--设置初始值;test--执行测试判断循环是否继续进行;
body--执行循环操作,对遍历到的元素进行操作的代码块;
update--更新用于test的变量,每轮循环结束时(即执行过循环体)进行;

区别与C语言的是,C++的init中可以包含变量的声明,这在C中不行,因为声明不是表达式;
此外,C++的for循环可以省略init、test、update三个部分中的任意一个,
如果省略了init,则init的初始值默认为0;如果省略了test,则test的判断条件默认为true;
如果省略了update,则update的更新操作不会被执行。

2.1.2 基于范围的for循环(C++11),

用于遍历一个序列中的元素,例如数组、字符串、容器(vector/array)等。

for (declaration : expression) {
  statement
}
declaration:声明一个变量,用于存储当前遍历到的元素。
expression:是一个序列,可以是数组、字符串、容器等。
statement:是对当前遍历到的元素进行操作的代码块。

2.1.3 for_each()

<algorithm>
template <class InputIterator, class Function>
   Function for_each (InputIterator first, InputIterator last, Function fn);

std::for_each是C++ STL中的一个算法,用于遍历一个序列中的元素,并对每个元素执行指定的操作,使用时应该#include <algorithm>

for_each()的语法格式为:
for_each(begin, end, func);
begin:指向序列的起始位置。
end:指向序列的结束位置。
func:是一个函数或函数对象,用于对每个元素执行指定的操作。

for_each()的返回值是void,表示不返回任何值。
for_each()的执行过程为:
1.从begin指向的位置开始遍历序列,直到end指向的位置结束。
2.对于每个遍历到的元素,执行func指定的操作。
3.执行完func指定的操作后,继续遍历下一个元素。
4.当遍历完整个序列后,for_each()结束。

参考


网站公告

今日签到

点亮在社区的每一天
去签到