25
2012
10
vs2010中使用Nunit测试c#代码结果的正确性
发布:pukuimin | 分类:c#/.net | 评论:0 | 浏览:
25
2012
10
linux下练习 c++ 关联式容器multimap特性
multimap.cpp
/* multimap特性 key可以重复 不支持下标访问 */ #include<iostream> #include<string> #include "print.h" #include<map> using namespace std; typedef pair<int,string> pairmp; typedef multimap<string,double> MS; int main() { MS m; m.insert(MS::value_type("t1",1000)); m.insert(MS::value_type("t1",1300)); m.insert(make_pair("t2",3000)); m.insert(MS::value_type("t1",1800)); m.insert(make_pair("t2",100000)); m.insert(MS::value_type("t1",1600)); print(m.begin(),m.end()); MS::iterator ib=m.begin(),ie; MS m2; while(ib!=m.end()) { string name=ib->first;//first:K,second:V ie=m.upper_bound(name);//同一个key的一个区别上界 double sum=0.0; while(ib!=ie) { sum+=(ib++)->second; } m2.insert(make_pair(name,sum));//处理,并加入一个容量 } print(m2.begin(),m2.end()); return 0; }
发布:pukuimin | 分类:linux/proc/c/c++ | 评论:0 | 浏览:
25
2012
10
linux下练习 c++ 关联式容器map特性
map.cpp
/* map.cpp map特性 不允许key重复 key/value对 key可以当下标访问value,key不存在则插入新的key/value对,以0初始化 */ #include<iostream> #include<string> #include "print.h" #include<map> using namespace std; typedef pair<int,string> pairmp; #include<map> int main() { map<int,string> mp; mp.insert(pair<int,string>(1,"aaa")); mp.insert(make_pair(5,"bbb"));//自动匹配类型,构造pair mp.insert(map<int,string>::value_type(4,"fff"));//内部类型,也能自动构造相应的pair mp.insert(make_pair(2,"hhh")); mp.insert(make_pair(2,"hhh")); mp[2]="hhh1";//有则修改 mp[3]="ddd";//无则插入 print(mp.begin(),mp.end()); return 0; }
发布:pukuimin | 分类:linux/proc/c/c++ | 评论:0 | 浏览:
25
2012
10
linux下练习 c++ 关联式容器共性测试,使用
code:
/* 关联式容器共性:二叉查找树实现,自动根据关键字排序,自动平衡 set<K>,multiset<K>,map<K,V>,multimap<K,V> 查找:.find(key) 失败返回.end() 统计:.count(key) 删除:.erase(key) 插入:.insert(element) 区间:.lower_bund(key) //取得关键字为key的第一个元素位置 .upper_bound(key) //取得关键字为key的最后一个元素之后的位置 .equal_range(key) 取得关键字为key的区间,返回pair 构造函数可用比较函数作为参数 bool func(K a,K b) */ #include<iostream> #include<set> #include<string> using namespace std; #include "print.h" struct person { string name; int age; public: person(const char* n,int a):name(n),age(a){} }; bool operator<(const person& a,const person& b) { return a.age<b.age||(a.age==b.age&& a.name<b.name);//找的时候按这个找 } ostream& operator<<(ostream& o,const person& x) { return o<<x.name<<':'<<x.age<<" "; } int main() { multiset<person> mp; mp.insert(person("ccc",16)); mp.insert(person("aaa",13)); mp.insert(person("aaa",13)); mp.insert(person("kkk",18)); mp.insert(person("fff",15)); mp.insert(person("eee",11)); mp.insert(person("jjj",16)); print(mp.begin(),mp.end()); multiset<person>::iterator it=mp.find(person("fff",15)); if(it==mp.end()) cout<<"not find!\n"; else { cout<<"find:"<<*it <<" "<<mp.count(*it)<<"个\n"; } person a("aaa",13); cout<<a<<" "<<mp.count(a)<<"个\n"; cout<<"lower/upper bound方法:\n"; multiset<person>::iterator ibegin,iend; ibegin=mp.lower_bound(a); iend=mp.upper_bound(a); print(ibegin,iend); cout<<"pair方法:\n"; typedef multiset<person>::iterator myiter;//给长类型起个别名 pair<myiter,myiter> p=mp.equal_range(a); print(p.first,p.second); cout<<"删除后输出:\n"; mp.erase(person("kkk",18));//有多个就删除多个 print(mp.begin(),mp.end()); }
发布:pukuimin | 分类:linux/proc/c/c++ | 评论:0 | 浏览:
25
2012
10
25
2012
10
今天学习使用mysql遇到的问题和解决办法
安装到最后出现问题,无响应,那么不要紧,前面的安装成功了,只是没配置。关闭之后,直接命令开启服务,再使用。
发布:pukuimin | 分类:mssql/mysql/oracle | 评论:0 | 浏览:
18
2012
10
linux下练习 c++ 类库中list的特性、关联式容器共性介绍
code:
/* 库模版中 list 特性: 双向链表 增删:.push_front(element),.pop_front(),.remove(element) 不支持下标访问 除去重复:.unique() 相邻的重复元素只保留一个 排序:.sort(),默认用'<'号比较,自定义类型要重载运算符 倒置:.reverse() 转移:.aplice(pos,list2),.aplice(pos,list2,pos2), .aplice(pos,list2,pos2_begin,pos2_end) 归并:.merge(list2) */ #include<iostream> using namespace std; #include<list> #include<cassert> #include "print.h" bool mult3(int x,int y)//模3的余数从小到大 { x%=3; y%=3; return x<y; } int main() { int a[7]={3,5,5,8,5,1,6}; int b[5]={5,7,9,2,4}; list<int> li(a,a+7),li2(b,b+5); print(li.begin(),li.end()); li.unique();//可自定义判断相等的函数 print(li.begin(),li.end()); li.sort();//排序 li.unique();//去重 print(li.begin(),li.end()); li.reverse();//倒序 print(li.begin(),li.end()); li.splice(li.begin(),li2);//转移 print(li.begin(),li.end()); assert(li2.empty());//判断是否为空,为假时才报错 li.remove(5);//删除值为5的所有元素 print(li.begin(),li.end()); li.sort();li.unique();//去重 print(li.begin(),li.end()); li2.push_back(3);li2.push_back(5); li2.push_back(9);li2.push_back(10); print(li2.begin(),li2.end()); li.merge(li2);//将li2合并到li中 print(li.begin(),li.end()); b[3]=6; li2.assign(b,b+5); print(li2.begin(),li2.end()); li2.sort(greater<int>());//用'>'排序,从大到小 print(li2.begin(),li2.end()); li2.sort(mult3);//用自写规则排序,从小到大 print(li2.begin(),li2.end()); return 0; }
发布:pukuimin | 分类:linux/proc/c/c++ | 评论:0 | 浏览:
18
2012
10
linux下练习 c++ 容器的deque的特性
code:
/* deque特性 下标:.operator[](i)不检查越界,.at(i) 删除:.pop_front(),.pop_back() */ #include<iostream> using namespace std; #include<deque> #include "print.h" int main() { deque<char> dq; dq.push_back('c'); dq.push_back('d'); dq.push_back('e'); dq.push_back('f'); print(dq.begin(),dq.end()); dq[1]='t';//把 d 改为 t for(int i=0;i<dq.size();i++) cout<<dq[i]<<' '; cout<<endl; dq.pop_back();//删除最后一个 dq.pop_front();//删除第一个 print(dq.begin(),dq.end()); return 0; }
发布:pukuimin | 分类:linux/proc/c/c++ | 评论:0 | 浏览:
16
2012
10
C#练习Array.Sort函数列出所有的进程与模块
.Net Code:
using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; using System.Collections; namespace ICompare测试 { class Program { static void Main(string[] args) { Process[] allprocess = Process.GetProcesses();//所有运行的进程 SortByProcessName cmpproname=new SortByProcessName(); SortByModuleName cmpmodulename=new SortByModuleName(); Array.Sort(allprocess, cmpproname); foreach (Process p in allprocess) {
发布:pukuimin | 分类:正则/算法(.Net) | 评论:0 | 浏览:
15
2012
10
linux下练习 c++ 容器的vector的特性
//vector.cpp
/* vector的特性 当前容量:.capacity() 约定容量:.reserve() 下标:.operator[](i) ,.at(i) 越界抛出异常 */ #include<iostream> using namespace std; #include<vector> #include<exception> #include<typeinfo> #include "print.h" void print(const vector< vector<int> >& v)//相当于二维数组 { for(int i=0;i<v.size();i++) { for(int j=0;j<v[i].size();j++) cout<<v[i][j]<<' '; cout<<endl; } } int main() { vector<double> vt,vt2;//默认容量成倍增长,4,8,16…… for(int i=1;i<10;i++) { vt.push_back(i+0.2); cout<<vt.size()<<'/'<<vt.capacity()<<' '; } cout<<endl; vt2.reserve(9);//只分配这么多,不成倍增长 for(int i=1;i<10;i++) { vt2.push_back(i+0.3); cout<<vt2.size()<<'/'<<vt2.capacity()<<' '; } cout<<endl; vt.at(3)=30.50;//修改值 vt[4]=40.70; try { for(int i=0;i<vt.size();i++) cout<<vt.at(i)<<' '; cout<<endl; } catch(exception& e) { cout<<"\n异常:"<<e.what()<<endl; cout<<"类型:"<<typeid(e).name()<<endl; } int m=3,n=5; vector< vector<int> > vvi(m,vector<int>(n));//二维vector vvi.resize(m+3); vvi[1].assign(9,3); vvi[5].assign(4,5); print(vvi); } /* template <typename T> void show(T a[],int n); template <typename T> void show(const vector<T>& vt); */
发布:pukuimin | 分类:linux/proc/c/c++ | 评论:0 | 浏览: