摘要:
缘起#include #include using namespace std;int main(){ istringstream iss; string str1, str2, str3, str4, str5, str6; iss.str("I love you"); iss >> str1 >> str2 >> str3; cout > str4 >> str5 >> str6; cout #include using namespace std;int main(){ istringstream is 阅读全文
摘要:
为了使自己的程序有很好的移植性,c++程序员应该尽量使用size_t和size_type而不是int, unsigned1. size_t是全局定义的类型;size_type是STL类中定义的类型属性,用以保存任意string和vector类对象的长度2. string::size_type制类型一般就是unsignedint,但是不同机器环境长度可能不同win32和win64上长度差别;size_type一般也是unsignedint 3. 使用的时候可以参考: string::size_typea=123; vectorsize_typeb=234; size_tb=456; 4. s.. 阅读全文
摘要:
问题描述一堆数(例如6, 2, 2, 6, 3, 4, 6, 6, 6, 6),总共10个,其中”6“的个数超过总数的一半5,找出这个个数超过过半的那个数。思路从头到尾遍历,两个数相同接着往后遍历;否则删掉这两个数,接着往后遍历。因为所找的那个数过半,所以不同的数相抵,抵消掉最后还会至少剩下一个那个要找的数。图示代码#include using namespace std;typedef struct node{ int num; node *before; node *next;}node;int main(){ node *p_now, *p_next; no... 阅读全文
摘要:
出自c++ primer(4th)282页,26题题意数组ia[]={0,1,1,2,3,5,8,13,21,55,89};把ia复制到一个list容器中。使用单个迭代器参数版本的erase()函数将list容器中的奇数元素值删掉。代码#include #include using namespace std;int main(){ int ia[] = {0,1,1,2,3,5,8,13,21,55,89}; list ilist(ia, ia+11); list::iterator beg = ilist.begin(); for(;beg!=ilist.end()... 阅读全文
摘要:
问题描述5, 5,-7, 5, 9, -1, 5, 1, 9, 4, 6 这堆数中两个数的和为10的组合有:5+5, 9+1, 4+6,如何快速的找出这样的组合?假定数组a[]存放元素,数组大小为len_a指定和为aim思路一先排序,low=0(最低位置),up=len_a(最高位置)当a[low]+a[up]>aim时,hig=high-1当a[low]+a[up] #include using namespace std; void printPairSums(int data[], int size, int sum); int main(int argc, char* a... 阅读全文
摘要:
在32位系统中,存储一位整型(int)数需要4个字节(4B),如果开辟一个空间,把其中的某个位1,就从原来的32b减少到1b,大大节省了空间。原理字符数组entry是存储位的数组,我们把数字N存到entry中,则把第N位置1:entry[nBits/8] = entry[nBits/8] | (1 << (nBits%8) )检验第N位是否为1:entry[nBits/8] & (1 << (nBits%8)图示函数void setBit(char entry[], int nBits){ entry[nBits/8] = entry[nBits/8] | (1 阅读全文
摘要:
问题假设:一个反应器中有两类粒子α和β,设每秒钟一个α粒子分裂成3个β粒子,而每秒钟一个β粒子分裂成一个α粒子和两个β粒子。假如在t=0时:反应器中有一个α粒子,求t秒时反应器中α粒子和β粒子的数目。根据关系列出递归关系a(t) = b(t-1)b(t) = 3*a(t-1) + 2*b(t-1)参考程序#include #include #define A_size 5 int aa(int size) //aa(t)表示t时刻α的个数{ if (size == 0) return 1; else return bb(size-1);}int bb... 阅读全文
摘要:
1.KMP算法2.(lhy)怎么切分最省 阅读全文
摘要:
WordNet是面向语义的英语词典,类似于传统字典。它是NLTK语料库的一部分,可以被这样调用:更简洁的写法:1.单词查看一个单词的同义词集用synsets(); 它有一个参数pos,可以指定查找的词性。这里得到的同义词集是同义词集的集合,即里面不是单纯的词,是同义词的集合.注:一个synset(同义词集:指意义相同的词条的集合)被一个三元组描述:(单词.词性.序号)。这里的’dog.n.01’指:dog的第一个名词意思;’chase.v.01’指:chase的第一个动词意思pos可为:NOUN、VERB、ADJ、ADV…2.同义词集注:一些关系的获得只能通过Lemmas,比如反义词:3. S 阅读全文
摘要:
假设点可以均匀的扔到正方形中。如果一共扔N次,其中M次扔进内切圆内,则可以推导出计算π的公式:随机计算π大体思路:获得随机数(x,y),判断x*x + y*y是否在单位圆内,可以得到M的个数。程序:#include <stdio.h>#include <stdlib.h>#include <time.h>#define N 1000int main(){ int i, M=0; double x, y, pi; srand((int)time(NULL)); for (i=0; i<N; i++) { x = rand() / (double)RAN. 阅读全文