- 博客(17)
- 收藏
- 关注
原创 C++ string类,字符拼接方法优劣
string类push_back()方法比用+号空间耗费少,在力扣剑指 Offer 05. 替换空格题目中下面两种方法分别消耗空间6MB,11MBclass Solution {public: string replaceSpace(string s) { string s1=""; for(char e:s){ if(e==' '){ s1.push_back('%'); .
2021-11-08 20:54:51 518
原创 C++ 位运算 与&或 | 非~ 异或^
与&1&1=1 1&0=0 0&0=0或|0|1=1 0|0=0 1|1=1非~~0=1 ~1=0异或^ : a^a^b=b0^1=1 1^1=0 0^0=0注意:&的优先级小于==if(a&b==0)//最先执行b==0{}
2021-10-30 20:48:00 317
原创 C++:数字型转化成string,string转化成数字型
数字转stringint a=462;string m= to_string(a);double a=462.3;//float,short等数字类型均可string m= to_string(a);string转数字string m= "123";int a= stoi(m);string m= "123";int a= atoi(m.c_str());//atoi()参数为C语言的字符数组,所以需要将m转化为字符数组string m= "123.1";floa
2021-10-28 22:06:57 513
原创 C++ : pair的使用方法
头文件#include <utility>定义pair<int ,int> p;赋值pair<int, int> p(1, 2);pair<int, int> p1 = p;pair<int ,int> p;p.first = 1; //访问第一个元素p.second = 2; //访问第二个元素pair<int, int> p ;p=make_pair(1, 2);访问pair
2021-10-26 22:28:55 225
原创 C++ STL :栈 (stack)的使用
头文件#include<stack>定义:stack<int> stack1;判断是否是空栈if(stack1.empty()){ cout<<"空栈"<<endl;}栈大小stack1.size();压栈:stack1.push(1);返回栈顶元素stack1.top();弹出栈顶元素stack1.pop();...
2021-10-26 20:06:19 147
原创 C++ :删除Vector,map中元素方法
1.利用迭代器删除map<string,int>::iterator key = cmap.find("mykey"); if(key!=cmap.end()) { cmap.erase(key); }vector<int>::iterator it
2021-10-25 10:20:01 281
原创 C++ math包中方法:平方根,平方,取整,绝对值
int a = pow(4,3);//4的3次方int a = sqrt(4);//4的平方根int a = abs(-2);//整数绝对值double a = fabs(-1.2);//浮点数绝对值int a=floor(1.2);//向下取整int a=ceil(1.2);//向上取整int a=round(1.5);//四舍五入
2021-10-23 19:20:17 2566
原创 C++ :获取字符串string 的子串(切片)
int main(){ string s1="abcdefg"; cout<<s1.substr(0,3)<<endl;//从0下标开始数3个字母构成的字符串}
2021-10-22 22:27:51 1444
原创 string类中 compare()函数用法
string a="abcde";string b="abd";cout<<a.compare(b) <<endl;// 因为a<b所以输出-1string a="abcde";string b="abd";cout<<b.compare(a) <<endl;//b>a 输出1string a="abcde";string b="abc";cout<<a.compare(b) <<endl;//.
2021-10-22 20:36:05 1157
原创 map的用法
1.map大小map<int, string> M;int Size = M.size();2. 数据遍历map<int, string>::iterator it;//前向迭代器for(it = M.begin(); it!= M.end(); it++) cout<<it->first<<" "<<it->second<<endl; map<int,...
2021-10-22 20:23:21 375
原创 力扣:229. 求众数 II
题目描述:给定一个大小为n的整数数组,找出其中所有出现超过⌊ n/3 ⌋次的元素。做法:使用关联容器map,对元素计数,用迭代器遍历map,找出出现超过⌊ n/3 ⌋次的元素。代码:class Solution {public: vector<int> majorityElement(vector<int>& nums) { map<int,int> M; int len=nums.size()/3;...
2021-10-22 20:21:48 520
原创 Pytorch:torch.flatten()与torch.nn.Flatten()
torch.flatten(x)等于torch.flatten(x,0)默认将张量拉成一维的向量,也就是说从第一维开始平坦化,torch.flatten(x,1)代表从第二维开始平坦化。import torchx=torch.randn(2,4,2)print(x)z=torch.flatten(x)print(z)w=torch.flatten(x,1)print(w)输出为:tensor([[[-0.9814, 0.8251], [ 0.8197, -1.
2021-10-15 16:12:44 17170 5
原创 Pytorch:构建神经网络
本文参考官方文档,对文档中的神经网络代码进行解读1.分析神经网络结构:神经网络结构如下图:这是一个前馈神经网络,(1)输入为32*32的图片,(2)第一个卷积层有6个5*5(32-28+1=5)的卷积核,这个卷积层输出为6*28*28,经过2*2的池化窗口下采样后,形成6*14*14的输出特征。(3)第二个卷积层有16个6*5*5的卷积核,这个卷积层输出为16*10*10,经过2*2的池化窗口下采样后,形成16*5*5的输出特征。(4)然后将这个16*5*5的特征平坦化(拉成一维),再经过.
2021-10-11 19:59:26 558
原创 Pytorch:自动求导(Autograd)
在神经网络模型中需要对参数求导更新,pytorch中Autograd包为张量上的所有操作提供了自动求导机制。它是一个在运行时定义(define-by-run)的框架,这意味着反向传播是根据代码如何运行来决定的,并且每次迭代可以是不同的。torch.Tensor是这个包的类,它有个叫.requires_grad的属性,当这个属性为True时,它往后的历史(它参与的计算过程)就回被追踪。x = torch.ones(2, 2, requires_grad=True)print(x)#输出为..
2021-10-11 10:46:11 1065
原创 Pytorch:使用GPU运算
如果电脑的显卡是NVIDIA的,可以用GPU进行运算。# 当GPU可用时,我们可以运行以下代码# 我们将使用`torch.device`来将tensor移入和移出GPU#CUDA是NVIDIA推出的并行计算架构,该架构使GPU能够解决复杂的计算问题。device = torch.device(('cuda') if torch.cuda.is_available() else 'cpu')#如果没有GPU则用CPU计算y = torch.ones_like(x, device=devic.
2021-10-09 22:10:12 1508
原创 拓展欧几里得和乘法逆元
拓展欧几里得:求ax+by=gcd(a,b) 求ax+by=c的值,如果c%(gcd(a,b))!=0则无解,将式子转化成求ax+by=gcd(a,b);得出特解x0,y0,则通解为 x=x0+(b/gcd(a,b)); y=y0-(a/gcd(a,b); 拓展欧几里得求ax+by=gcd(a,b)的最小整数解: 假如已知bx1+a%by1=gcd(a,b)的最小整数x1,y1。 b*x
2017-05-31 17:01:15 380
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人