“人造太阳”计划

STL中的set使用方法详细!!!!

老子叫甜甜 提交于 2019-11-27 18:55:37
1.关于set C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用操作,如:插入、排序、删除、查找等。让用户在STL使用过程中,并不会感到陌生。 关于set,必须说明的是set关联式容器。set作为一个容器也是用来存储同一数据类型的数据类型,并且能从一个数据集合中取出数据,在set中每个元素的值都唯一,而且系统能根据元素的值自动进行排序。应该注意的是set中数元素的值不能直接被改变。C++ STL中标准关联容器set, multiset, map, multimap内部采用的就是一种非常高效的平衡检索二叉树:红黑树,也成为RB树(Red-Black Tree)。RB树的统计性能要好于一般平衡二叉树,所以被STL选择作为了关联容器的内部结构。 关于set有下面几个问题: (1)为何map和set的插入删除效率比用其他序列容器高? 大部分人说,很简单,因为对于关联容器来说,不需要做内存拷贝和内存移动。说对了,确实如此。set容器内所有元素都是以节点的方式来存储,其节点结构和链表差不多

Python学习笔记---第三周

隐身守侯 提交于 2019-11-27 15:16:19
1.文件操作 (1)找到文件位 (2)双击打开 (3)进行一些操作(r - read(读)w - write(写)a - 追加 rb -读字节 wb - 写字节 ab - 追加写 r+ - 读写 w+ - 写读 a+ - 追加读 (4)关闭文件 open() -- 打开 open通过python控制操作系统进行打开文件 1.1 r模式 文件只能读取一次 格式:f = open("文件位置\文件名",mode="r"(不写默认为r),encoding="utf-8") print(f.read()) --- 全部读取 print(f.read(11)) -- 按照字符读取 print(f.readline()) -- 读取一行,默认尾部有个换行符 print(f.readline().strip()) -- 去除换行符 print(f.readlines()) -- 一行一行读取,全部储存在列表中 1.2 路径 绝对路径:从磁盘(C盘)开始查找 f = open(r"D:\Python_s25\day08\t1",mode="r",encoding="utf-8") 相对路径:相对于某个文件进行查找 f = open("t1",mode="r",encoding="utf-8") 路径转义:"E:\Python全栈"\tt电话 -- \t会被认为是制表符 解决办法:1.每个\变成\

Python 生成迭代器 iter() 函数

好久不见. 提交于 2019-11-27 15:11:01
Python 生成迭代器 iter() 函数 功能: 函数用来生成迭代器。 语法: iter ( object [ , sentinel ] ) object – 支持迭代的集合,对象,比如 list ,元组等。 sentinel – 如果传递了第二个参数,则参数 object 必须是一个可调用的对象(如,函数),此时,iter 创建了一个迭代器对象,每次调用这个迭代器对象的 next() 方法时,都会调用 object 返回值: 迭代器对象。 实例: >> > a = [ 111 , 221 , 333 ] >> > b = iter ( a ) >> > b . next ( ) 111 >> > b . next ( ) 221 >> > b . next ( ) 333 >> > b . next ( ) Traceback ( most recent call last ) : File "<pyshell#25>" , line 1 , in < module > b . next ( ) StopIteration 来源: https://blog.csdn.net/qq_41683065/article/details/99690351

RNN入门(一)识别MNIST数据集

微笑、不失礼 提交于 2019-11-27 13:39:48
RNN介绍   在读本文之前,读者应该对全连接神经网络(Fully Connected Neural Network, FCNN)和卷积神经网络( Convolutional Neural Network, CNN)有一定的了解。对于FCNN和CNN来说,他们能解决很多实际问题,但是它们都只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的 。而在现实生活中,我们输入的向量往往存在着前后联系,即前一个输入和后一个输入是有关联的,比如文本,语音,视频等,因此,我们需要了解深度学习中的另一类重要的神经网络,那就是循环神经网络(Recurrent Neural Network,RNN).   循环神经网络(Recurrent Neural Network,RNN)依赖于一个重要的概念:序列(Sequence),即输入的向量是一个序列,存在着前后联系。简单RNN的结构示意图如下: 相比于之前的FCNN,RNN的结构中多出了一个自循环部分,即W所在的圆圈,这是RNN的精华所在,它展开后的结构如下: 对于t时刻的输出向量 \(o_{t}\) ,它的输出不仅仅依赖于t时刻的输入向量 \(x_{t}\) ,还依赖于t-1时刻的隐藏层向量 \(s_{t-1}\) ,以下是输出向量 \(o_{t}\) 的计算公式: \[s_{t}=f(Ux_{t}+Ws_{t-1})\] \[o_{t

RNN识别MNIST数据集

空扰寡人 提交于 2019-11-27 13:39:24
RNN介绍   在读本文之前,大家应该对全连接神经网络(Fully Connected Neural Network, FCNN)和卷积神经网络( Convolutional Neural Network, CNN)有一定的了解。对于FCNN和CNN来说,他们能解决很多实际问题,但是它们都只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的 。而在现实生活中,我们输入的向量往往存在着前后联系,即前一个输入和后一个输入是有关联的,比如文本,语音,视频等,因此,我们需要了解深度学习中的另一类重要的神经网络,那就是循环神经网络(Recurrent Neural Network,RNN).   循环神经网络(Recurrent Neural Network,RNN)依赖于一个重要的概念:序列(Sequence),即输入的向量是一个序列,存在着前后联系。简单RNN的结构示意图如下: 简单RNN的结构示意图   相比于之前的FCNN,RNN的结构中多出了一个自循环部分,即W所在的圆圈,这是RNN的精华所在,它展开后的结构如下: RNN展开后的结构   对于t时刻的输出向量 ,它的输出不仅仅依赖于t时刻的输入向量 ,还依赖于t-1时刻的隐藏层向量 ,以下是输出向量 的计算公式:   其中,第二个式子为输出层的计算公式,输出层为全连接层,V为权重矩阵,g为激活函数。第一个式子中

题解 luogu P5021 【赛道修建】

时光总嘲笑我的痴心妄想 提交于 2019-11-27 11:09:12
题解 luogu P5021 【赛道修建】 时间:2019.8.9 20:40 时间:2019.8.12 题目描述 C 城将要举办一系列的赛车比赛。在比赛前,需要在城内修建 \(m\) 条赛道。 C 城一共有 \(n\) 个路口,这些路口编号为 \(1,2,\dots,n\) ,有 \(n-1\) 条适合于修建赛道的双向通行的道路,每条道路连接着两个路口。其中,第 \(i\) 条道路连接的两个路口编号为 \(a_i\) 和 \(b_i\) ,该道路的长度为 \(l_i\) 。借助这 \(n-1\) 条道路,从任何一个路口出发都能到达其他所有的路口。 一条赛道是一组互不相同的道路 \(e_1,e_2,\dots,e_k\) ,满足可以从某个路口出发,依次经过 道路 \(e_1,e_2,\dots,e_k\) (每条道路经过一次,不允许调头)到达另一个路口。一条赛道的长度等于经过的各道路的长度之和。为保证安全,要求每条道路至多被一条赛道经过。 目前赛道修建的方案尚未确定。你的任务是设计一种赛道修建的方案,使得修建的 \(m\) 条赛道中长度最小的赛道长度最大(即 \(m\) 条赛道中最短赛道的长度尽可能大) 题意分析 给出一棵 \(n\) 个点的树,并在其中选取 \(m\) 条 边不相交 的路径,使得最短路径(赛道)的长度尽可能大。 分析 最短路径的长度尽可能大,即要求最大化最小值

Faster Rcnn 代码解读之 train_val.py

与世无争的帅哥 提交于 2019-11-27 08:30:45
# -------------------------------------------------------- # Tensorflow Faster R-CNN # Licensed under The MIT License [see LICENSE for details] # Written by Xinlei Chen and Zheqi He # -------------------------------------------------------- from __future__ import absolute_import from __future__ import division from __future__ import print_function from model.config import cfg import roi_data_layer.roidb as rdl_roidb from roi_data_layer.layer import RoIDataLayer from utils.timer import Timer try: import cPickle as pickle except ImportError: import pickle import numpy as np import os import sys

049 迭代器

心不动则不痛 提交于 2019-11-27 05:48:53
迭代器 迭代器就相当于是更新换代的意思,重复的操作、基于上一次的结果得到下一次的结果 1.可迭代对象 python中一切皆是对象 对于所有的对象,只要是有 .____iter___ 方法的对象,都是可迭代对象 python内置的str、list、tuple、dict、set、file都是可迭代对象。 x = 1 # 不可迭代对象 name = 'xichen'# 可迭代对象 lis = [1,2,3] # 可迭代对象 dic = {'a':1,'b':2} # 可迭代对象 se = {1,2,3,4} # 可迭代对象 tuple = (1,2,3) # 可迭代对象 f = open('test.txt') # 可迭代对象 def fun(): # 不可迭代对象 pass 2.迭代器对象 可迭代的对象执行 __iter__ 方法得到的返回值。并且可迭代对象会有一个 __next__ 方法。 只有字符串和列表是依赖索引取值的,而其他的可迭代对象都是无法依赖索引取值的。因此我们就有了迭代器对象的方法能让其他的可迭代对象不依赖索引取值。 # 不依赖索引的数据类型迭代取值 dic = {'a': 1, 'b': 2, 'c': 3} dic_iter = dic.__iter__() print(dic_iter .__next__()) print(dic_iter .__next__()

Python学习日记(十) 生成器和迭代器

馋奶兔 提交于 2019-11-27 04:04:02
使用dir()我们可以知道这个数据类型的内置函数有什么方法: print(dir(int))   print(dir(bool)) print(dir([])) print(dir({})) print(dir(set)) 迭代器 iterable:可迭代的 迭代就是将数据能够一个一个按顺序取出来 s = 'abc' print('__iter__' in dir(s)) #True li = [1,2] print('__iter__' in dir(li)) #True b = False print('__iter__' in dir(b)) #False i = 123 print('__iter__' in dir(i)) #False dic = {} print('__iter__' in dir(dic)) #True set1 = set() print('__iter__' in dir(set1)) #True 上面数据类型返回为真说明它是可以迭代的,反之是不可迭代的 可迭代协议: 就是内部要有一个__iter__()来满足要求 当一个具有可迭代的数据执行__iter__()它将返回一个迭代器的内存地址 print('abc'.__iter__()) #<str_iterator object at 0x005401F0> 这里的iterator的意思是

闭包函数 装饰器 迭代器

一世执手 提交于 2019-11-27 03:51:11
闭包函数 一、什么是闭包 闭包:闭是封闭(函数内部函数),包是包含(该内部函数对外部作用域而非全局作用域的变量的引用)。闭包指的是:函数内部函数对外部作用域而非全局作用域的引用。简单的说闭包函数就是把变量和函数一起包起来,下次要用直接使用 def outter(x): def inner(): print(x) return inner inner = outter(2) # inner # f = inner inner() inner() inner() # 查看闭包的元素 print(F"f.__closure__[0].cell_contents: {f.__closure__[0].cell_contents}") 结果: 2 2 2 f.__closure__[0].cell_contents: 2 二、闭包函数的应用 闭包的含义:返回的函数对象,不仅仅是一个函数对象,在该函数外还包裹一层作用域,这使得该函数无论在何处调用,优先先使用自己外层包裹的作用域 应用领域:延迟计算(原来我们是传参的,现在我们包裹起来)、怕成领域 import requests def get(url): response = requests.get(url) print(f"done: {url}") get('https://www.baidu.com') get('https://www