法特视笔试小结——2010年10月18日

#include <iostream> #include <iterator> #include <fstream> #include <vector> #include <algorithm> using namespace std; /* 从一个文件1.txt中读取一些整数,然后排序,将排序后的结果写到文件2.txt,并 在屏幕上显示。 下面是C++的实现方法! */ int main() { ifstream in; ofstream out; in.open("D://1.txt", ios::in); out.open("D://2.txt", ios::out); istream_iterator<int> inIter(in), eof; vector<int> vec; copy(inIter, eof, back_inserter(vec));//从文件中读取 printf("排序前为:/n"); copy(vec.begin(), vec.end(), ostream_iterator<int>(cout, " ")); printf("/n"); sort(vec.begin(), vec.end());//排序 printf("排序后为:/n"); copy(vec.begin(), vec.end(), ostream_iterator<int>(cout, " ")); printf("/n"); copy(vec.begin(), vec.end(), ostream_iterator<int>(out, " "));//写回到文件 out<<"/n"; //写回到文件的第二种方法 vector<int>::iterator iter = vec.begin(); while (iter != vec.end()) { out<<*iter++<<" "; } out<<endl; }

 

 

#include <stdio.h> #include <cstdlib> #include <vector> /* 从一个文件1.txt中读取一些整数,然后排序,将排序后的结果写到文件2.txt,并 在屏幕上显示。 下面是C语言的实现方法! */ int cmp(const void *elem1, const void *elem2) { return (*(int*)elem1 > *(int*)elem2) ? 1 : -1; } int main() { FILE *in; FILE *out; in = fopen("D://1.txt", "rt"); out = fopen("D://2.txt", "wt"); std::vector<int> vec; int d; printf("排序前为:/n"); while (!feof(in))//feof(文件指针)用来判断是否到文件结尾 { fscanf(in, "%d ", &d); printf("%d ", d); vec.push_back(d); } printf("/n"); qsort(vec.begin(), vec.size(), sizeof(int), cmp); printf("排序后为:/n"); for (int i=0; i<vec.size(); i++) { fprintf(out, "%d ", vec.at(i)); printf("%d ", vec.at(i)); } printf("/n"); }

 

 

c语言中的快速排序算法:qsort函数

 

 

C语言中用qsort()快速排序 C语言中排序的算法有很多种,系统也提供了一个函数qsort()可以实现快速排序。原型如下: void qsort(void *base, size_t nmem, size_t size, int (*comp)(const void *, const void *)); 它根据comp所指向的函数所提供的顺序对base所指向的数组进行排序,nmem为参加排序的元素个数,size为每个元素所占的字节数。例如要对元素进行升序排列,则定义comp所指向的函数为:如果其第一个参数比第二个参数小,则返回一个小于0的值,反之则返回一个大于0的值,如果相等,则返回0。 例: #include <stdio.h> #include <stdlib.h> int comp(const void *, const void *); int main(int argc, char *argv[]) { int i; int array[] = {6, 8, 2, 9, 1, 0}; qsort(array, 6, sizeof(int), comp); for (i = 0; i < 6; i ++) { printf("%d/t", array[i]); } printf("/n"); return 0; } int comp(const void *p, const void *q) { return (*(int *)p - *(int *)q); } 运行结果如下: 0 1 2 6 8 9

 

 

 

 

程序什么时候应该使用线程,什么时候单线程效率高。

程序什么时候应该使用线程,什么时候单线程效率高。 答:1.耗时的操作使用线程,提高应用程序响应 2.并行操作时使用线程,如C/S架构的服务器端并发线程响应用户的请求。 3.多CPU系统中,使用线程提高CPU利用率 4.改善程序结构。一个既长又复杂的进程可以考虑分为多个线程,成为几个独立或半独 立的运行部分,这样的程序会利于理解和修改。 其他情况都使用单线程。

 

 

怎样用dll输出一个类?

 

 

输出类是 AFX_EXT_CLASS 输出类的成员函数是 __declspec(dllexport)

你可能感兴趣的:(ios,算法,iterator,语言,include,2010)