“人造太阳”计划

C++ map的使用

浪尽此生 提交于 2020-02-27 10:08:41
C++ map的基本操作和使用 来源:( http://blog.sina.com.cn/s/blog_61533c9b0100fa7w.html ) - C++ map的基本操作和使用_Live_新浪博客 Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作! 1. map最基本的构造函数; map<string , int >mapstring; map<int ,string >mapint; map<sring, char>mapstring; map< char ,string>mapchar; map<char ,int>mapchar; map<int ,char >mapint; 2. map添加数据; map<int ,string> maplive; 1.maplive.insert(pair<int,string>(102,"aclive")); 2.maplive.insert(map<int,string>::value_type(321,"hai")); 3, maplive[112]="April";//map中最简单最常用的插入添加! 3,map中元素的查找: find()函数返回一个迭代器指向键值为key的元素,如果没找到就返回指向map尾部的迭代器。 map

LeetCode——1. Two Sum

▼魔方 西西 提交于 2020-02-27 03:59:33
一.题目链接: https://leetcode.com/articles/two-sum/ 二.题目大意:   给定一个int型数组A和int值a,要求从A中找到两个数,使得这两个数值的和为a;返回结果为一个数组,该数组存储的为这两个数在数组A中的下标。(题目假设结果是唯一的) 三.题解   1.该题目首先最容易想到的就是暴力破解,只需要两个循环分别遍历数组;这样的话,时间复杂度为O(N 2 ),空间复杂度为O(1),代码如下:    int* twoSum(int* nums, int numsSize, int target) { int *rs = malloc(sizeof(int)*2); int i = 0,j = 0; for(i = 0; i < numsSize; i++) for (j = i + 1; j < numsSize; j++) { if(nums[i] + nums[j] == target) { rs[0] = i; rs[1] = j; return rs; } } return rs; }   2.由于O(N 2 )的时间复杂度效率太低,有没有更好的方法?我们只需想方设法优化第二个for循环即可(第一个for循环一般无法优化,因为该程序至少要遍历一次);可以考虑利用map来进行查询,代码如下:    vector<int> twoSum

day-14带参装饰器、迭代器

依然范特西╮ 提交于 2020-02-26 11:15:05
带参装饰器 通常,装饰器为被装饰的函数添加新功能,需要外界的参数    -- outer参数固定一个,就是func   -- inner参数固定同被装饰的函数,也不能添加新参数   -- 可以借助函数的嵌套定义,外层给内层传参 def wrap(info): def outer(func): # info = 0 def inner(*args, **kwargs): print('新:拓展的新功能,可能也需要外界的参数%s' % info) res = func(*args, **kwargs) return res return inner return outer @wrap('外部参数') def fn(): pass # 系统的wraps带参装饰器:改变inner的假指向,本质外界使用的还是inner,但是打印显示的是wraps中的函数 from functools import wraps def outer(func): @wraps(func) def inner(*args, **kwargs): res = func(*args, **kwargs) return res return inner @outer def fn(): pass 迭代器 迭代器:循环反馈的容器(集合类型)   -- 不同于索引取值,但也可以循环的从容器对象中从前往后逐个返回内部的值

python_day4

不羁的心 提交于 2020-02-26 11:03:03
目录: 函数补充进阶 函数对象 函数的嵌套 名称空间与作用域 闭包函数 函数之装饰器 函数之迭代器 函数之生成器 内置函数 一、函数补充进阶    1、函数对象: 函数是第一类对象,即函数可以当作数据传递,它的应用形式也被称为高阶函数,函数的特性如下: a. 可以被引用 1 # def foo(): 2 # print('from foo') 3 # 4 # func = foo 5 # print(foo) # 不加括号为foo函数的内存地址 6 # print(func) # func指向foo内存地址 7 # func() # foo内存地址,加()执行 8 ''' 9 结果: 10 <function foo at 0x0000007D79483E18> 11 <function foo at 0x0000007D79483E18> 12 from foo 13 ''' View Code b. 可以当作参数传递 1 # def foo(): 2 # print('from foo') 3 # 4 # def bar(func): 5 # print(func) 6 # func() 7 # 8 # bar(foo) # foo函数内存地址被当作参数传递到bar函数中,并调用 9 10 ''' 11 结果: 12 <function foo at

迭代器、生成器、面向过程编程

不打扰是莪最后的温柔 提交于 2020-02-26 09:11:44
1.迭代器 1.1 迭代的概念 #迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 while True: #只是单纯地重复,因而不是迭代 print('===>') l=[1,2,3] count=0 while count < len(l): #迭代 print(l[count]) count+=1 1.2 为何要有迭代器?什么是可迭代对象?什么是迭代器对象? #1、为何要有迭代器? 对于序列类型:字符串、列表、元组,我们可以使用索引的方式迭代取出其包含的元素。但对于字典、集合、文件等类型是没有索引的,若还想取出其内部包含的元素,则必须找出一种不依赖于索引的迭代方式,这就是迭代器 #2、什么是可迭代对象? 可迭代对象指的是内置有__iter__方法的对象,即obj.__iter__,如下 'hello'.__iter__ (1,2,3).__iter__ [1,2,3].__iter__ {'a':1}.__iter__ {'a','b'}.__iter__ open('a.txt').__iter__ #3、什么是迭代器对象? 可迭代对象执行obj.__iter__()得到的结果就是迭代器对象 而迭代器对象指的是即内置有__iter__又内置有__next__方法的对象 文件类型是迭代器对象 open('a.txt').__iter__()

迭代器、生成器、面向过程编程

怎甘沉沦 提交于 2020-02-26 09:09:34
阅读目录 一 迭代器 二 生成器 三 面向过程编程 一 迭代器 一 迭代的概念 #迭代器即迭代的工具,那什么是迭代呢?#迭代是一个重复的过程,每次重复即一次迭代,并且每次迭代的结果都是下一次迭代的初始值 while True: #只是单纯地重复,因而不是迭代 print('===>') l=[1,2,3] count=0 while count < len(l): #迭代 print(l[count]) count+=1 二 为何要有迭代器?什么是可迭代对象?什么是迭代器对象? #1、为何要有迭代器? 对于序列类型:字符串、列表、元组,我们可以使用索引的方式迭代取出其包含的元素。但对于字典、集合、文件等类型是没有索引的,若还想取出其内部包含的元素,则必须找出一种不依赖于索引的迭代方式,这就是迭代器 #2、什么是可迭代对象? 可迭代对象指的是内置有__iter__方法的对象,即obj.__iter__,如下 'hello'.__iter__ (1,2,3).__iter__ [1,2,3].__iter__ {'a':1}.__iter__ {'a','b'}.__iter__ open('a.txt').__iter__ #3、什么是迭代器对象? 可迭代对象执行obj.__iter__()得到的结果就是迭代器对象 而迭代器对象指的是即内置有__iter__又内置有__next_

可迭代对象,生成器,迭代器

大城市里の小女人 提交于 2020-02-26 02:33:11
可迭代对象 str,tuple,dict,list,set,bytes都为可迭代对象 range的结果是一个 range 对象,是一个可迭代对象 可迭代对象的本质: 在迭代一个可迭代对象的时候,实际上就是先获取该对象提供的一个迭代器,然后通过这个迭代器来依次获取对象中的每一个数据。 那么也就是说, 一个具备了_ _iter _ _方法的对象,就是一个可迭代对象。 迭代器 python中只要实现了 __iter__ 和 __next__ 方法的对象都可以称之为迭代器, _ _iter _ _() 方法返回一个特殊的迭代器对象,迭代器的 _ _ iter _ _() 返回⾃身, 这个迭代器对象实现了 _ _next _ _() 方法返回下一个值并通过 StopIteration 异常标识迭代的完成。 迭代器是一个带状态的对象,可以记录迭代的位置。 str / bytes / list / tuple / dict / set ⾃身不是迭代器,他 们⾃身不具备 _ _next _ _() , 但是具有 _ _iter _ _() , _ _iter _ _() ⽅法 ⽤来把⾃身转换成⼀个迭代器 In [ 1 ] : s = 'asdfghh' #字符串为可迭代对象 In [ 2 ] : si = s . __iter__ ( ) #调用__iter__()方法返回一个迭代器 In [ 3

《动手学深度学习》Task10:图像分类案例2+GAN+DCGAN

耗尽温柔 提交于 2020-02-26 02:11:09
1 图像分类案例2 Kaggle上的狗品种识别(ImageNet Dogs) 在本节中,我们将解决Kaggle竞赛中的犬种识别挑战,比赛的网址是https://www.kaggle.com/c/dog-breed-identification 在这项比赛中,我们尝试确定120种不同的狗。该比赛中使用的数据集实际上是著名的ImageNet数据集的子集。 # 在本节notebook中,使用后续设置的参数在完整训练集上训练模型,大致需要40-50分钟 # 请大家合理安排GPU时长,尽量只在训练时切换到GPU资源 # 也可以在Kaggle上访问本节notebook: # https://www.kaggle.com/boyuai/boyu-d2l-dog-breed-identification-imagenet-dogs import torch import torch . nn as nn import torch . optim as optim import torchvision import torchvision . transforms as transforms import torchvision . models as models import os import shutil import time import pandas as pd import

《动手学深度学习》Task06:批量归一化和残差网络 +凸优化+梯度下降

試著忘記壹切 提交于 2020-02-26 00:54:04
1 批量归一化和残差网络 1.1 批量归一化(BatchNormalization) BN的作用 Internal Convariate shift(内部协变量偏移)是BN论文作者提出来的概念,表示数据的分布在网络传播过程中会发生偏移,我们举个例子来解释它,假设我们有一个玫瑰花的深度学习网络,这是一个二分类的网络,1表示识别为玫瑰,0则表示非玫瑰花。我们先看看训练数据集的一部分: 直观来说,玫瑰花的特征表现很明显,都是红色玫瑰花。 再看看训练数据集的另一部分: 很明显,这部分数据的玫瑰花各种颜色都有,其特征分布与上述数据集是不一样的。 通俗地讲,刚开始的数据都是同一个分布的,模型学习过程中,模型的参数已经适合于一种分布,突然又要适应另一种分布,这就会让模型的参数发生很大的调整,从而影响到收敛速度和精度,这就是Internal covariate shift。 而BN的作用就是将这些输入值或卷积网络的张量进行类似标准化的操作,将其放缩到合适的范围,从而加快训练速度;另一方面使得每一层可以尽量面对同一特征分布的输入值,减少了变化带来的不确定性。 对输入的标准化(浅层模型) 处理后的任意一个特征在数据集中所有样本上的均值为0、标准差为1。 标准化处理输入数据使各个特征的分布相近 批量归一化(深度模型) 利用小批量上的均值和标准差,不断调整神经网络中间输出

动手学深度学习之图像分类案例1-2

心不动则不痛 提交于 2020-02-26 00:11:35
参考伯禹学习平台《动手学深度学习》课程内容内容撰写的学习笔记 原文链接:https://www.boyuai.com/elites/course/cZu18YmweLv10OeV/lesson/ZDRJ8BaRpFmqDwJafJAYGn 感谢伯禹平台,Datawhale,和鲸,AWS给我们提供的免费学习机会!! 总的学习感受:伯禹的课程做的很好,课程非常系统,每个较高级别的课程都会有需要掌握的前续基础知识的介绍,因此很适合本人这种基础较差的同学学习,建议基础较差的同学可以关注伯禹的其他课程: 数学基础:https://www.boyuai.com/elites/course/D91JM0bv72Zop1D3 机器学习基础:https://www.boyuai.com/elites/course/5ICEBwpbHVwwnK3C 引言 图像分类,顾名思义,是一个输入图像,输出对该图像内容分类的描述的问题。它是计算机视觉的核心,实际应用广泛。图像分类的传统方法是特征描述及检测,这类传统方法可能对于一些简单的图像分类是有效的,但由于实际情况非常复杂,传统的分类方法不堪重负。现在,我们不再试图用代码来描述每一个图像类别,决定转而使用机器学习的方法处理图像分类问题。主要任务是给定一个输入图片,将其指派到一个已知的混合类别中的某一个标签。 Kaggle上的图像分类(CIFAR-10) 现在