有很多排序算法,最常用的还是冒泡;往往在实际中排序的时候,不单单是数字的排序,比如说:有一群人,人被抽象为一个类(CPeple),有很多属性:姓名,年龄,身高,性别,等等;这群人需要根据年龄来排序,那每一个人就是一个对象;很容易想到一个方法是将这个群人(对象)装到一个vector中,然后取出年龄,根据年龄,使用冒泡算法,根据年龄大小比较后,交换两个对象。。这样以来就有一个问题,对象交换的话会不会比较慢;如果数据量很大的话,不只选择哪种排序算法会影响到效率,交换两个对象的话也会影响到效率。。关于交换对象这两个问题该怎么解决??
最后觉得还是采用map<int,vector<CPeople>> ,因为map由红黑树保证,放入map后就会自动排好序,这样就避免了各种问题吧,自己也不用写排序算法了。。
························································································································。。。。
周末了,这周主要改了一些软件的bug,没涉及到什么算法问题;
学习:函数传参数的时候,如果不改变变量的值,最好传const& :因为如果不是传引用,实参一般都会生成一个副本传给函数,需要调用类的拷贝构造函数,函数结束的是时候还要进行析构,这样效率就降低了,如果是c++自己的类型的话,效率不会影响太大,但是如果是自己定义的类型,这个类型很大的话,那就会影响到效率。。。
编写DLL:#pragma once
#ifndef GLOBAL_DLL
#define GLOBAL_DLL
#ifdef GLOBAL_DLL //GLOBAL_DLL:如果这里的名字跟#define的名字不一样,则需要将这里的这个变量复制到Project->Setting->c/c++选项卡->Processer //definition 下
#define GLOBAL_DLL_API _declspec(dllexport)
#else
#define GLOBAL_DLL_API _declspec(dllimport)
#endif
#endif