合肥住房城乡建设部的网站,传媒公司是干嘛的,如何做电影网站不违法,网站吸引人的功能对一组同构对象用单数组表示法实现
#xff08;算法导论第十章10.3-2#xff09; 考虑到数据安全问题#xff0c;多用了一个数组来处理安全问题。
#ifndef C11LEARN_SINGULARGROUPSREPRESENTISOMORPHICOBJECTS_H
#define C11LEARN_SINGULARGROUPSREPRESENTISOMORPHICOBJEC…对一组同构对象用单数组表示法实现
算法导论第十章10.3-2 考虑到数据安全问题多用了一个数组来处理安全问题。
#ifndef C11LEARN_SINGULARGROUPSREPRESENTISOMORPHICOBJECTS_H
#define C11LEARN_SINGULARGROUPSREPRESENTISOMORPHICOBJECTS_H
#include cstring
templatetypename T
class SingularGroupsRepresentIsomorphicObjects
{
private:int capacity;char *buffer;int *array;
public:SingularGroupsRepresentIsomorphicObjects(int capacity 50);virtual ~SingularGroupsRepresentIsomorphicObjects();SingularGroupsRepresentIsomorphicObjects(const SingularGroupsRepresentIsomorphicObjectsT l);const SingularGroupsRepresentIsomorphicObjectsT operator(const SingularGroupsRepresentIsomorphicObjectsT l);T*allocate();void free(T*);
};
templatetypename T
SingularGroupsRepresentIsomorphicObjectsT::SingularGroupsRepresentIsomorphicObjects(int capacity ):capacity(capacity){if(this-capacity0) this-capacity 10;buffer new char[sizeof (T)*this-capacity];array new int[this-capacity];memset(buffer,0,sizeof (T)*this-capacity);memset(array,0,sizeof (int)*this-capacity);
}
templatetypename T
SingularGroupsRepresentIsomorphicObjectsT::~SingularGroupsRepresentIsomorphicObjects(){if(buffer! nullptr){delete[] array;delete [] buffer;buffer nullptr;array nullptr;}
}
templatetypename T
SingularGroupsRepresentIsomorphicObjectsT::SingularGroupsRepresentIsomorphicObjects(const SingularGroupsRepresentIsomorphicObjectsT l){capacity l.capacity;buffer new char[sizeof (T)*capacity];array new int[capacity];memcpy(buffer,l.buffer,sizeof (T)*capacity);memcpy(array,l.array,sizeof (int)*capacity);
}
templatetypename T
const SingularGroupsRepresentIsomorphicObjectsT SingularGroupsRepresentIsomorphicObjectsT::operator(const SingularGroupsRepresentIsomorphicObjectsT l){if(this l)return*this;if(buffer! nullptr){delete[] array;delete [] buffer;}capacity l.capacity;buffer new char[sizeof (T)*capacity];array new int[capacity];memcpy(buffer,l.buffer,sizeof (T)*capacity);memcpy(array,l.array,sizeof (int)*capacity);return *this;
}
templatetypename T
T*SingularGroupsRepresentIsomorphicObjectsT::allocate(){int index -1;while (indexcapacity array[index]!0);if(indexcapacity)throw out of space;array[index] -1;return (T*)(bufferindex*sizeof (T));
}
templatetypename T
void SingularGroupsRepresentIsomorphicObjectsT::free(T* t){int index -1;while (indexcapacity (T*)(bufferindex*sizeof (T)) ! t);if(indexcapacity){memset(t,0,sizeof (T));array[index] 0;}
}
#endif //C11LEARN_SINGULARGROUPSREPRESENTISOMORPHICOBJECTS_H
测试代码 int arr[] {1, 4, 6, -9, 2, -5, 10, -3, -7,12};int length sizeof(arr)/sizeof (int);SingularGroupsRepresentIsomorphicObjectsint isomorphicObjects(10);int *arr_tmp[10];int *arr_tmp_a[10];for (int i 0; i 10; i) {arr_tmp[i] isomorphicObjects.allocate();*arr_tmp[i] i;}for (int i 0; i 10; i) {cout*arr_tmp[i] ;}for (int i 0; i 10; i2) {isomorphicObjects.free(arr_tmp[i]);}coutendl;for (int i 0; i 10; i) {cout*arr_tmp[i] ;}coutendl;SingularGroupsRepresentIsomorphicObjectsint isomorphicObjects_a;isomorphicObjects_a isomorphicObjects;for (int i 0; i 5; i1) {arr_tmp_a[i] isomorphicObjects_a.allocate();*arr_tmp_a[i] i;}for (int i 0; i 5; i) {cout*arr_tmp_a[i] ;}coutendl;SingularGroupsRepresentIsomorphicObjectsint isomorphicObjects_b(isomorphicObjects);for (int i 0; i 5; i1) {arr_tmp_a[i5] isomorphicObjects_b.allocate();*arr_tmp_a[i5] i;}for (int i 0; i 10; i) {cout*arr_tmp_a[i] ;}