栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

快速写出第一道C++算法题所需的知识

Java 更新时间:发布时间: 百科书网 趣学号

目录
        • 类模板
        • 创建对象
        • & 和 *
        • 数组创建
        • :: : . ->
        • STL 容器(Containers)
        • 标准库
        • 算法模板

类模板
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 = %dn",x); //1024
}

* 是一元运算符,返回操作数所指定地址的变量的值,作为函数参数,代表传进去的是指针。

void test(int *x) {
	*x = 1024;// 修改x指针所指地址的值
}	
int main() {
	int y = 666;
	int *x = &y;// 取y地址,赋值给x指针
	test(x);
	printf("x = %dn",*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]=''
char a[10] = "0123";    //当字符常量长度不够时 数组的其他元素初始化为  ''
int value[9][9] = {{1,1},{2}}; //value[0][0,1]和value[1][0]的值初始化,其他初始化为0
:: : . ->

::是作用域运算符,作用域可以是命名空间、类、结构。(前面没有则是默认域、全局)
:用于继承(类及方法)
->是指针指向其成员的运算符(前面是指向类、结构体、联合的指针)。
. 是结构体的成员运算符(前面是对象或结构体变量)。

STL 容器(Containers)

vector :一种向量,能够存放任意数据的动态数组。
list :一个双向链表容器,完成了标准 C++ 数据结构中链表的所有功能。
queue :一种队列容器,完成了标准 C++ 数据结构中队列的所有功能。
stack :一种栈容器,完成了标准 C++ 数据结构中栈的所有功能。
deque :双端队列容器,完成了标准 C++ 数据结构中栈的所有功能。
priority_queue :一种按值排序的队列容器。
set :一种集合容器。
multiset :一种允许出现重复元素的集合容器。
map :一种关联数组容器。
multimap :一种允许出现重复 key 值的关联数组容器。

标准库

常见的如下:

#include 
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 
#include 
isdigit(a);//只能判断字符型是否是数字
isalpha('a');//判断一个字符是否为字母
isalnum('a');//判断一个字符是否为数字或者字母
//也就是说判断一个字符是否属于a~z||A~Z||0~9
islower('a');//判断一个字符是否为小写字母,也就是是否属于a~z
isupper('a');//判断一个字符是否为大写字母。


#include 
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 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

using namespace std;

const int maxn = 110;
const int INF = 0x3f3f3f3f;
转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/986306.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号