
基础语法
ycynb2020
这个作者很懒,什么都没留下…
展开
-
输出蛇形矩阵
从左上角填上 1 开始,顺时针方向依次填入数字,如同样例所示。注意每个数字有都会占用 3 个字符,前面使用空格补齐。给出一个不大于 9 的正整数。原创 2023-07-12 13:49:37 · 341 阅读 · 0 评论 -
二维矩阵左转
个 整数,表示矩阵A的元素。相邻两个整数之间用单个空格隔开,每个元素均在。列开始,逐列逐行进行输入(输入完当前列所有行元素之后再去输入下一列元素)列开始,逐行逐列进行输入(输入完当前行所有列之后再去输入下一行元素)个整数,为矩阵旋转之后的结果。相邻两个整数之间用单个空格隔开。列的矩阵,让矩阵向左翻一个。行所有元素之后才会开始第。,表示矩阵的行数和列数。原创 2023-07-12 13:12:19 · 559 阅读 · 0 评论 -
C++ 语言基础拓展知识
对于C++基础知识的一些拓展原创 2022-04-08 11:06:36 · 249 阅读 · 0 评论 -
模板详解(template)
模板是C++支持参数化多态的工具,使用模板可以使用户为类或者函数声明一种一般模式,使得类中的某些数据成员或者成员函数的参数、返回值取得任意类型。模板是一种对类型进行参数化的工具;通常有两种形式:函数模板和类模板;函数模板针对仅参数类型不同的函数;类模板针对仅数据成员和成员函数类型不同的类。使用模板的目的就是能够让程序员编写与类型无关的代码。比如编写了一个交换两个整型int 类型的swap函数,这个函数就只能实现int 型,对double,字符这些类型无法实现,要实现这些类型的交换就要重新编写另一个原创 2021-10-08 15:16:38 · 645 阅读 · 0 评论 -
自动类型推导(auto)与类型获取(decltype)
auto话说C语言还处于K&R时代,也有auto a = 1;的写法。中文译过来叫自动变量,跟 c++11 的不同,C 语言的 auto a = 1; 相当与 auto int a = 1; 语句。 而 C++11 的 auto 是有着严格的类型推导出来的。以前是这么写int a = 1;现在,编译器知道a是int型了。所以可以这么写auto a = 1;对于类型比较长的,如vector<string>::iterator这类的,能少敲些字符了。如果仅仅就这点作用,那么对编程原创 2021-10-08 13:29:13 · 462 阅读 · 0 评论 -
反转字符串的函数(reverse)
该函数定义在#include <algorithm>头文件中reverse 函数是反转容器中的内容,对字符数组无效#include <iostream>#include <string>#include <algorithm>using namespace std;int main(){ string s= "hello"; reverse(s.begin(),s.end()); cout<<s<<原创 2021-09-29 12:02:15 · 2320 阅读 · 0 评论 -
全排列 (next/prev_permutation) 的使用
函数模板:next_permutation(arr, arr + size); 当有下一个较大值返回 1 , 否则返回 0 ;prev_permutation(arr, arr + size); 当有下一个较小值返回 1 , 否则返回 0;解释: arr为数组, size为数组长度; 按字典序比大小.int arr2[] = {3, 2, 1};cout<<"用prev_permutation对3 2 1的全排列"<<endl;do { cout <<原创 2021-09-29 11:59:18 · 230 阅读 · 0 评论 -
vector 的使用
定义格式:vector < typename > name;eg:vector< int> a[n]:定义了一个行数为n,列数不固定的整形二维数组avector< vector< int > >a:定义了一个行数,列数都不固定的整形二维数组avector< int > a(n):定义了一个元素个数为n的整形数组avector< vector< int> >a(n,vector< int>(m)):定义原创 2021-05-10 16:45:50 · 1077 阅读 · 0 评论 -
关于二分查找lower_bound( )和upper_bound( )的常见用法
关于lower_bound( )和upper_bound( )的常见用法头文件:#include < algorithm >二分查找的函数有 3 个:lower_bound(起始地址,结束地址,要查找的数值)从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字在数组中的下标。upper_bound(起始地址,结束地址,要查找的数值)从数组的begin位置到end-1位置原创 2020-12-18 15:07:42 · 306 阅读 · 0 评论 -
最大/最小元素(max/min_element)
该函数定义在#include<algorithm>头文件中函数模板:max_element(arr, arr + size); 返回最大值的地址(迭代器) ;min_element(arr, arr + size); 返回最小值的地址(迭代器);解释: arr为数组, size为数组长度; 按字典序比大小.对于 n 行 m 列的二维数组用法: max/min_element(&arr[0][0], &arr[n - 1][m]);int arr[] = {原创 2021-09-29 11:54:05 · 337 阅读 · 0 评论 -
accumulate 的用法
accumulate 定义在#include<numeric>中,作用有两个,一个是累加求和,另一个是自定义类型数据的处理。累加求和int a[5] = {0, 1, 3, 4, 5};int sum = accumulate(vec.begin() , vec.end() , 0); accumulate 有三个参数:头两个参数是要累加的元素范围,第三个参数是累加的初始值。accumulate 函数将它的一个内部变量设置为一个指定的初始值,然后在此初值上累加输入范围内所有元素的值原创 2021-09-29 11:45:39 · 2114 阅读 · 0 评论 -
&& 和 || 的判断规则
&& 和 || 如果左方的判断为false,则不进行右方的判断。所以写条件语句时,将容易不满足的条件放到前面可以降低一定的运行时间。原创 2021-09-11 13:21:59 · 754 阅读 · 0 评论