“人造太阳”计划

自学QT之qFind的用法

匿名 (未验证) 提交于 2019-12-03 00:03:02
#include <QCoreApplication> #include <QStringList> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QList<QString> list; list<<"qwq"<<"ewrw"<<"e"; QList<QString>::const_iterator iter=qFind(list.begin(),list.end(),"e"); if(iter!=list.end()) { qDebug()<<*iter; } else { qDebug()<<"not fond"; } return a.exec(); } 转载于:https://my.oschina.net/u/2505464/blog/542340 来源:51CTO 作者: chizhou4731 链接:https://blog.csdn.net/chizhou4731/article/details/100732241

常用算法

匿名 (未验证) 提交于 2019-12-02 23:56:01
排序普通类型 bool complare(int a, int b) { return a < b; // 从小到大, 形参顺序不变, 看大小号判断排序顺序 return a > b; // 从大到小 } int a[10] = { 1, 7, 4, 0, 9, 4, 8, 8, 2, 4 }; sort(a, a + 10); // 数组长度 sort(a, a + 10, complare); 排序vector bool complare(int a, int b) { return a > b; } vector<int> vt; for (int i = 0; i < 10; i++) { vt.push_back(static_cast<int>(rand() % 10)); } for (auto v : vt) cout << v << " "; cout << endl; sort(vt.begin(), vt.end(), complare); for (auto v : vt) cout << v << " "; cout << endl; myClass c1, c2; swap(c1, c2); int a = 1, b = 2; cout << max(a, b) << ' ' << endl; cout << min(a, b) << ' ' <<

P1607 [USACO09FEB]庙会班车Fair Shuttle

匿名 (未验证) 提交于 2019-12-02 23:49:02
题目:逛逛集市,兑兑奖品,看看节目对农夫约翰来说不算什么,可是他的奶牛们非常缺乏锻炼――如果要逛完一整天的集市,他们一定会筋疲力尽的。所以为了让奶牛们也能愉快地逛集市,约翰准备让奶牛们在集市上以车代步。但是,约翰木有钱,他租来的班车只能在集市上沿直线跑一次,而且只能停靠 \(N(1 ≤N≤20000)\) 个地点(所有地点都以1到N之间的一个数字来表示)。现在奶牛们分成 \(K(1≤K≤50000)\) 个小组,第i 组有 \(M_i(1 ≤M_i≤N)\) 头奶牛,他们希望从 \(S_i\) 跑到 \(T_i(1 ≤S_i<T_i≤N)\) 。 由于班车容量有限,可能载不下所有想乘车的奶牛们,此时也允许小里的一部分奶牛分开乘坐班车。约翰经过调查得知班车的容量是 \(C(1≤C≤100)\) ,请你帮助约翰计划一个尽可能满足更多奶牛愿望的方案。 题解: 对于这道题,很显然是一道贪心,而且我们必须将其考虑为有 反悔 机制的贪心。首先在每一站,进行一下的判断: 将在车上的奶牛可以下车的下车 让所有在此站点上车的奶牛上车 如果超过数量,将最远目的地的奶牛赶下车 #include <iostream> #include <set> #include <algorithm> using namespace std; typedef long long ll; const int maxn =

迭代器、生成器

匿名 (未验证) 提交于 2019-12-02 23:49:02
什么是迭代器? 迭代:更新换代的过程,也是一个重复的过程,每一次的迭代都必须基于上一次的结果(迭代与迭代之间必须要有关系) 迭代器:迭代取值的工具 为什么要用迭代器? 迭代器给提供了一种不依赖于索引取值的方式 需要迭代取值的数据类型:字符串、列表、元组、字典、集合 l = [1,2,3,4] n = 0 while n < len(1): print(l[n]) n += 1 #重复+,每次迭代都是基于上一次的结果而来的      可迭代对象 只要内置有__iter__方法的都叫做可迭代对象 补充:针对双下划线开头双下划线结尾的方法,推荐读双下+方法名 基本数据类型中可迭代对象的:str、list、tuple、dict、set、 文件对象(执行内置的__iter__之后还是本身,没有任何变化),文件对象本身就是迭代器对象。 可迭代对象执行内置的__iter__方法得到就是该对象的迭代器对象 迭代器取值 迭代器对象: 1、内置有__iter__方法 迭代器对象无论执行多少次__iter__方法得到的还是迭代器对象本身 2、内置有__next__方法 迭代器对象一定是可迭代对象,而可迭代对象不一定是迭代器对象 可迭代对象:内置有__iter__方法的 迭代器对象:既内只有__iter__也内置有__next__方法 迭代取值: 优点: 1、不依赖于索引取值 2、内存中永远只占一份空间

Python 常用内置函数

匿名 (未验证) 提交于 2019-12-02 22:51:30
1. abs()函数返回数字的绝对值。 print ( abs (- 45 ) ) # 返回 45print("abs(0.2):",abs(0.2)) # 返回 abs(0.2): 0.2 2. all() 函数用于判断给定的参数中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。元素除了是 0、空、None、False 外都算 True;空元组、空列表返回值为True。 print ( all ( [ 0.1 , 1 ,- 1 ] ) ) # 返回 True print ( all ( ( None , 1 ) ) ) # 返回 False(其中一个元素为None) print ( all ( [ 0 , 1 ,- 1 ] ) ) # 返回 False(其中一个元素为0) print ( all ( [ " " , "a" , "" ] ) ) # 返回 False(第三个元素为空) 3. any() 函数用于判断给定的参数是否全部为False,是则返回False,如果有一个为True,则返回True。 元素除了是 0、空、False外都算 TRUE。 # 参数全部不为 0、空、FALSE print ( any ( "-45" )) # True print ( any ([ "-45" ])) # True print ( any ( ( "0" ,

手写一个python迭代器

匿名 (未验证) 提交于 2019-12-02 22:51:30
我们都知道一个可迭代对象可以通过iter()可以返回一个迭代器。 如果想要一个对象称为可迭代对象,即可以使用for,那么必须实现__iter __()方法。 在一个类的实例对象想要变成迭代器,就必须实现__iter__()和__next__()方法。 调用iter()时,在对象内部默认调用__iter__(),即__iter__()的返回值应该是一个迭代器。 for的每次循环中或者next()时,都是自动调用迭代器的__next__()方法,并有一个返回值。 class Classmate: def __init__(self): self.names = [] self.num = 0 def add(self, name): self.names.append(name) def __iter__(self): return self def __next__(self): if self.num < len(self.names): ret = self.names[self.num] self.num += 1 return ret else: raise StopIteration c = Classmate() c.add("张三") c.add("李四") c.add("王五") for i in c: print(i) """ 张三 李四 王五 """ 来源:博客园

[Python] 迭代器是什么?你每天在用的for循环都依赖它!

匿名 (未验证) 提交于 2019-12-02 22:51:30
顺序 , 分支 , 循环 是编程语言的三大逻辑结构,在Python中都得到了支持,而Python更是为循环结构提供了非常便利的语法: for ... in ... 刚从C语言转入Python的同学可能倾向于写索引下标式的循环,例如下面的代码像遍历C中的数组一样遍历了一个Python中的列表: >>> colors = ['black', 'white', 'red', 'blue'] >>> for i in range(len(colors)): ... print(colors[i]) ... black white red blue 但如果将列表(list)替换为集合(set),这个方法就不奏效了: >>> colors = set(['black', 'white', 'red', 'blue']) >>> for i in range(len(colors)): ... print(colors[i]) ... Traceback (most recent call last): File "<stdin>", line 2, in <module> TypeError: 'set' object does not support indexing 这是因为set不像list,string,tuple这些结构,其中的元素从逻辑上讲本身是没有序的,与之类似的还有dict

关于C++ vector等容器排序问题

故事扮演 提交于 2019-12-02 22:48:44
C++ vector排序 参考 https://blog.csdn.net/upc_xbt/article/details/53305962 注意: #include<iostream> #include<vector> #include<algorithm> using namespace std; int main() { int num=0; cin>>num; string str; vector<string> word; while(cin>>str) { word.push_back(str); } sort(word.begin(),word.end()); for(auto iter=word.cbegin();iter!=word.cend();iter++) { cout<<*iter<<endl; } } sort函数不能用cbegin(),即如下是错误的: sort(word.cbegin(),word.cend()); 来源: CSDN 作者: 雨过河源忆江南 链接: https://blog.csdn.net/u013656369/article/details/80465197

Python―day13 迭代器、迭代器对象、for循环对象、生成器、枚举对象

匿名 (未验证) 提交于 2019-12-02 22:11:45
一、迭代器 1、迭代器概念: 器:包含了多个值的容器 迭代:循环反馈(一次从容器在取出一个值) 迭代器:从装有多个值的容器在一次取出一个值 ls=[3,5,7,1,9] 遍历:被遍历的对象必须是有序容器 i=0 while i<len(ls): print(ls[i]) i+=1 输出结果 3 5 7 1 9 属于无序输出 输出的是有序的 st={1,2,3,4,5} dic={'a':1,'b':2} 2、可迭代对象概念: 对象:python中的一个对象(装有地址的变量) 可迭代对象:该对象有_iter_()方法,调用该方法返回迭代器对象 有哪些:str | list | tuple | dict | set | range() | file | 迭代器对象 | enumerate() | 生成器 [].__iter__() ().__iter__() {}.__iter__() {1,}.__iter__() 可迭代对象调用_iter_()方法得到迭代器对象    二、迭代器对象 1、迭代器对象迭代器对象就可以做到不依赖索引取值(一次从容器中取出一个值)迭代器对象都有_next_()方法,且通过该方法获取容器中的值,获取规则,从前往后一次一个有哪些:file | enumerate() | 生成器 重点:1.从迭代器对象中取元素,取一个少一个,如果要从头开始去

Python中的迭代器

匿名 (未验证) 提交于 2019-12-02 22:11:45
一 : 函数名的运用   1.函数名的内存地址 def func(): print("呵呵") print(func) 结果: <function func at 0x1101e4ea0>   2.函数名可以赋值给其他变量    def func(): print("呵呵") print(func) a = func # 把函数当成一个变量赋值给另一个变量 a() # 函数调用 func()   3.函数名可以当做容器类的元素 def func1(): print("呵呵") def func2(): print("呵呵") def func3(): print("呵呵") lst = [func1, func2, func3] for i in lst: i()   4.函数名可以当做函数的参数   5.函数名可以作为函数的返回值    def func_1(): print("这里是函数1") def func_2(): print("这里是函数2") print("这里是函数1") return func_2 fn = func_1() # 执行函数1. 函数1返回的是函数2, 这时fn指向的就是上面函数2 fn() # 执行上面返回的函数 二 : 闭包   闭包就是内层函数,对外层函数(非全局)的变量的引用    def func1(): name = "alex" def