您的位置:首页 > 财经 > 金融 > 龙口网站开发_推广链接打开_哪个平台可以随便发广告_seo应该如何做

龙口网站开发_推广链接打开_哪个平台可以随便发广告_seo应该如何做

2024/11/16 14:29:51 来源:https://blog.csdn.net/qq_74099184/article/details/143453790  浏览:    关键词:龙口网站开发_推广链接打开_哪个平台可以随便发广告_seo应该如何做
龙口网站开发_推广链接打开_哪个平台可以随便发广告_seo应该如何做

万能头文件

#include<bits/stdc++.h>

遍历容器

带&:取地址,及取出来的是原元素。

不带&:引用,及取出来的是副本,不会对原元素造成影响。

for (auto &ele : st) //auto为类型 st为容器名cout << ele << endl;

迭代器find()

一般容器,如vector、map等
s.find(x) == s.end()//没找到
if (s.find(x) != s.end())//如果找到了
string字符串
if(B.find(ch)==string::npos)
//find()未查询到的返回值是string::npos,此代码表示未查询到

数字字符转化为整形

ans=ans*10+ch-'0';//数字字符减去0的ASCII码后转化为整形//ans*10防止输入二位以上数

阶乘函数

tgamma(n+1)指的是1到n的阶乘,及n!

以下函数返回的是C(p,l),及为从 p个不同元素中取 i 个元素的组合数。

double just(int p,int l){return tgamma(p + 1) / (tgamma(l + 1) * tgamma(p - l + 1));
}

要注意 tgamma的返回值为double。不过可以传入int再用double进行接收

cout << fixed << setprecision(0) << sum;

如果要输出整数,可以结合以上代码去掉浮点类型小数部分

如果求C(n,m)可以用tgamma但是单纯求阶乘累加我推荐下面这种 (L1-013 计算阶乘和)

for(int i=1;i<=n;i++)
{add*=i;sum+=add;
}

判断素数/质数

bool is_prime(int x)
{if (x < 2) return false;for (int i = 2; i <= x / i; i ++ )if (x % i == 0)return false;return true;
}

setw()字段宽度函数运用

setw(int n)是c++中在输出操作中使用的字段宽度设置,设置输出的域宽,n表示字段宽度。只对紧接着的输出有效,紧接着的输出结束后又变回默认的域宽。
当后面紧跟着的输出字段长度小于n的时候,在该字段前面用空格补齐;当输出字段长度大于n时,全部整体输出。

cout << setw(5)<< i;//设置i的字段宽度为5,不足用空格补齐,在i前添加,i为最后一个字段

dev-cpp开启c++11

ps:在我使用dev-c++时报错:

range-based ‘for’ loops are not allowed in C++98 mode

解决方法1:工具—>编译选项—>程序

gcc:gcc.exe -std=c++11

g++:g++.exe -std=c++11

解决方法2:工具—>编译选项—>编译器

勾选编译时加入以下命令:

添加: -std=c++11

ps:注意-std前有一个空格。


double类型保留几位小数

括号中的数表示保留几位小数,需要注意的是,此函数是有四舍五入功能的。

所以setprecision(0)通常用于小数部分为0的数取整,及配合tgamma函数使用。

cout<<fixed<<setprecision(2)<<n;

IO优化c++

ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); 的作用和注意事项-CSDN博客

重点注意:cout<<endl不能使用,要用cout<<‘\n’

ios::sync_with_stdio, cin.tie(0), cout.tie(0);

初始化数组/容器

memset只能设置0,-1或很大/很小的数(但是memset很快),所以改用stl自带函数fill()

数组

fill(dp, dp + N, 1); // 正确初始化dp数组为1

容器

fill(v.begin(), v.end(), 1);

清空元素释放内存

数组

memset(a,0,sizeof a);
memset(diff,0,(t+1)*4);

a是数组名,0是初始化值,(t+1)*4是字节数,int是4字节,long long是8字节

容器

为什么不用自带的clear()?因为clear()只能清空元素不能释放内存。

vector<string> v;
map<string,int> m;
vector<string>().swap(v);
map<string,int>().swap(m);

getline()

固定搭配,cin输入后需要吃掉回车再用getline输入

cin >> n;
cin.ignore(); // 吃掉回车
getline(cin, s);

异或运算符: a^b

#include<bits/stdc++.h>
using namespace std;
const int N =1e5+10;
int a[N];
int main(){ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int n,res=0;cin>>n;for(int i=0;i<n;i++) cin>>a[i];for(int i=0;i<n;i++){for(int j=0;j<=i;j++){res=max(res,a[i]^a[j]);}}cout<<res;return 0;
}

最大公约数

__gcd(a,b);

最小公倍数

__lcm(a,b);

大数模除法

#include<bits/stdc++.h>
using namespace std;
const int N =1e6;
int main(){ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int ans=0;string s="12345678901234567890123456789012345678901234567890";for(char ele : s){ans=(ans*10+(ele-'0'))%2023;}cout<<ans;return 0; 
} 

字符串转数字、数字转字符串、字符转字符串

字符串转数字
 int num=stoi(s3);
数字转字符串
string s1=to_string(a);
字符转字符串
string(1,ele);

反转字符串

reverse(s2.begin(),s2.end());

double型保留精度(非输出)

double tr(double value, int pre) {double factor = pow(10.0, pre);return trunc(value  *  factor) / factor;
}
double tr = tr(value, 6);//保留6位精度

更加简洁的是用round函数(带四舍五入)

round(i * 100) / 100

输入不定长数据

  do{int n;cin>>n;v.push_back(n);}while(cin.get()!='\n');

将字符串转化为小写

transform(s.begin(),s.end(),s.begin(),::toupper);

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com