, C++ , , C++ 1980- . , O(1) ( , ). , , . , , , (fast text strings) . , , :
// faststring.h class FastString { char *m_psz; public: FastString(const char *psz); ~FastString(void); int Length(void) const; // returns # of characters // int Find(const char *psz) const; // returns offset // };
, - :
// FastString.cpp #include "faststring.h" #include <string.h> FastString::FastString(const char *psz) : m_psz(new char [strlen(psz) + 1]) { strcpy(m_psz, psz); } FastString::~FastString(void) { delete[] m_psz; } int FastString::Length(void) const { return strlen(m_psz); } int FastString::Find(const char *psz) const { //O(1) lookup code deleted for> clarity1 // 0(1) }
C++ . , , C++. , C++, . , .
, FastString 16 . , O(1)- , , - , . . 1.1, FastString, 16 . , , FastString 48 . , FastString 48 , , .
: FastString, . FastString , FastString . , , . , FastString , .
1 , . .