#ifndef OBJECTS_H#define OBJECTS_Htemplate<class T>class vector{public:vector() : data_(NULL), total_(0), size_(0) {}~vector() { delete [] data_; }size_t size() const { return size_; }bool empty() const { return size_ == 0; }const T &operator[] (size_t index) const { return data_[index]; }T &operator[] (size_t index) {return data_[index]; }void push_back(const T &t){if (size_ == total_) {// no free spacesize_t new_total = (total_ == 0) ? 1 : total_ * 2;T *new_data = new T[new_total];for (size_t i = 0; i < size_; i++) {new_data[i] = data_[i];}delete [] data_;data_ = new_data;total_ = new_total;}data_[size_++] = t;}void pop_back(){if (size_)size_--;}void erase(size_t pos){if (pos >= size_)return; // errorfor (size_t i = pos; i < size_ - 1; i++) {data_[i] = data_[i + 1];}size_--;}template <typename X>size_t find(const X &v) const{for (size_t i = 0; i < size_; i++) {if (data_[i] == v)return i;}return -1;}void clear(){size_ = total_ = 0;delete [] data_;data_ = NULL;}private:T *data_;size_t total_;size_t size_;};class CriticalSection{public:CriticalSection(CRITICAL_SECTION &critical_section);~CriticalSection();static void Init(CRITICAL_SECTION &critical_section);static void Free(CRITICAL_SECTION &critical_section);private:CRITICAL_SECTION &critical_section_;};#endif
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。