cvec.hpp

来自「这是个人脸识别程序」· HPP 代码 · 共 46 行

HPP
46
字号
// $common\cvec.hpp 1.5 milbo$ cvec is like STL vector but checks for out of range indices when _DEBUG is defined.// Warning: this is raw research code -- expect it to be quite messy.//// If _DEBUG is not defined the MSC compiler generates code with the same efficiency as vector.// I checked this by looking at disassembled code.// Lifted from Ulrich Breymann "Designing Components with the C++ STL" section 9.1//// milbo durban jan06// $common\cvec.hpp 1.0$#if !defined(cvec_hpp)#define cvec_hpp#include <vector>using namespace std;#if _DEBUGvoid __cdecl SysErr(const char *pArgs, ...);	// args like printf#define DASSERT(x) 	if (!(x)) SysErr("%s %d: FAIL %s", __FILE__, __LINE__, #x)#else#define DASSERT(x)#endiftemplate<typename T> class cvec: public vector<T>{public:		// typenames like iterator are also inheritedcvec() {}cvec(size_type n, const T& value=T()): vector<T>(n, value) {}cvec(iterator i, iterator j): vector<T>(i,j) {}reference operator[](difference_type i)	{	DASSERT(i >= 0 && i < (difference_type)size());	return vector<T>::operator[](i);	}const_reference operator[](difference_type i) const	{	DASSERT(i >= 0 && i < (difference_type)size());	return vector<T>::operator[](i);	}};#endif	// cvec_hpp

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?