类模板
class Solution {
public:
returnType function(paramType param) {
return returnType;
}
};
public:代表下面部分都是公共可见的
创建对象
- new创建类对象需要指针接收,一处初始化,多处使用,使用完需delete销毁,直接使用堆空间,可以作为函数返回值、函数参数等。
- 局部不用new定义类对象则使用栈空间。
& 和 *
& 是一元运算符,返回操作数的内存地址,作为函数参数会自动传进去真正的变量,是实参(假如没有&则是形参)。
void test(int &x) {
x = 1024;
}
int main() {
int x = 666;
test(x);
printf("x = %d\n",x); //1024
}
* 是一元运算符,返回操作数所指定地址的变量的值,作为函数参数,代表传进去的是指针。
void test(int *x) {
*x = 1024;// 修改x指针所指地址的值
}
int main() {
int y = 666;
int *x = &y;// 取y地址,赋值给x指针
test(x);
printf("x = %d\n",*x); // 1024
}
数组创建
int a[3] = {0, 1, 2}; //大括号法只能声明时使用
int a[3]={0}; //正确,省略初始化最后一个元素,最后省略的元素初始化为0
int a[n]={0}; // 注意n必须为const类型,否则错误
char a[10] = "012345678"; //用一个字符串常量去初始化字符数组.注意: a[10]='\0'
char a[10] = "0123"; //当字符常量长度不够时 数组的其他元素初始化为 '\0'
int value[9][9] = {{1,1},{2}}; //value[0][0,1]和value[1][0]的值初始化,其他初始化为0
:: : . ->
::是作用域运算符,作用域可以是命名空间、类、结构。(前面没有则是默认域、全局)
:用于继承(类及方法)
->是指针指向其成员的运算符(前面是指向类、结构体、联合的指针)。
. 是结构体的成员运算符(前面是对象或结构体变量)。
STL 容器(Containers)
vector <T>:一种向量,能够存放任意数据的动态数组。
list <T>:一个双向链表容器,完成了标准 C++ 数据结构中链表的所有功能。
queue <T>:一种队列容器,完成了标准 C++ 数据结构中队列的所有功能。
stack <T>:一种栈容器,完成了标准 C++ 数据结构中栈的所有功能。
deque <T>:双端队列容器,完成了标准 C++ 数据结构中栈的所有功能。
priority_queue <T>:一种按值排序的队列容器。
set <T>:一种集合容器。
multiset <T>:一种允许出现重复元素的集合容器。
map <key, val>:一种关联数组容器。
multimap <key, val>:一种允许出现重复 key 值的关联数组容器。
标准库
常见的如下:
#include <algorithm>
max(a,b) //返回a,b两者之间的较大值
max_element(a.begin(),a.end()) //返回数组r中[0, 6)之间的最大值的迭代器,
//使用max_element返回的值减去数组头地址即为该最大值在数组的序号,
//赋值输出记得加*
reverse(str.begin(),str.end());//逆序(或反转),多用于字符串、数组、容器。
sort(a,a+10);//实现对数据的排序
//有三个参数,第一个参数first:是要排序的数组的起始地址。
//第二个参数last:是结束的地址(最后一个数据的后一个数据的地址)
//第三个参数comp是排序的方法:可以是从升序也可是降序。
//如果第三个参数不写,则默认的排序方法是从小到大排序。
count(s.begin(),s.end(),'a'); //用来统计字符串中某个字符的个数
//使用方法是count(begin,end,‘a’),其中begin指的是起始地址,
//end指的是结束地址,第三个参数指的是需要查找的字符。
#include <cstdio>
#include <ctype.h>
isdigit(a);//只能判断字符型是否是数字
isalpha('a');//判断一个字符是否为字母
isalnum('a');//判断一个字符是否为数字或者字母
//也就是说判断一个字符是否属于a~z||A~Z||0~9
islower('a');//判断一个字符是否为小写字母,也就是是否属于a~z
isupper('a');//判断一个字符是否为大写字母。
#include <math>
int abs(int x);//求整数x的绝对值
double exp(double x);//返回 e 的 x 次幂的值。
double pow(double x, double y);//返回 x 的 y 次幂。
double sqrt(double x);//返回 x 的平方根。
double ceil(double x);//返回大于或等于 x 的最小的整数值。
double fabs(double x);//返回 x 的绝对值。
double floor(double x);//返回小于或等于 x 的最大的整数值。
算法模板
#define _CRT_SBCURE_NO_DEPRECATE
#include <set>
#include <cmath>
#include <queue>
#include <stack>
#include <vector>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <functional>
using namespace std;
const int maxn = 110;
const int INF = 0x3f3f3f3f;
本文详细介绍了C++中的类模板、对象创建、引用与指针的区别、数组创建,以及STL中的各种容器如vector、list、queue等。通过实例解析了作用域运算符、成员运算符,并列举了标准库算法如排序、查找等。同时,文章涵盖了C++中的一些基本操作,如内存管理和类型转换。

被折叠的 条评论
为什么被折叠?



