Instantly share code, notes, and snippets.

View stl-ex-2d.cpp
u_int32_t CarSize(const Car &car) // (3)
{
return sizeof(length) * 3 + model.length() + 1 +
sizeof(*engine); // (4)
}
void CopyCar(void *dest, const Car&car) // (5)
{
// Copy all bytes of the car object into memory chunk M
// referenced by dest.
View stl-ex-2c.cpp
typedef dbstl::db_map<const char *, Car> owner_car_map_t; // (1)
owner_car_map_t ocmap;
while (has more owner-car pairs to input) {
// Accept input data for owner name and car, create car.
cin>>owner>>len>>width>>height>>hp>>ncyl>>displ;
Engine *pEngine = new Engine(hp, ncyl, displ);
Car car(len, width, height, pEngine);
ocmap[owner.c_str()] = car; // (2)
View stl-ex-2b.cpp
typedef std::map<const char *, Car> owner_car_map_t;
owner_car_map_t ocmap;
while (has more owner-car pairs to input) {
// Accept input data for owner name and car, create car.
cin>>owner>>len>>width>>height>>hp>>ncyl>>displ;
Engine *pEngine = new Engine(hp, ncyl, displ);
Car car(len, width, height, pEngine);
ocmap[owner.c_str()] = car;
View stl-ex-2a.cpp
class Car {
size_t length, width, height;
Engine *engine;
string model;
// Member functions follow ...
};
class Engine {
size_t horse_power;
View stl-ex-1d.cpp
for(dbl_vec_t::iterator itr = v1.begin(); itr != v1.end(); ++itr)
*itr *= 2;
for (int i = 0; i < v1.size(); i++)
v1[i] += 3;
v1.swap(v2); // Swap the vector's contents.
v2 = v1; // Assign one vector to another.
assert(v1 == v2);
std::reverse(v1.begin(), v1.end());
View stl-ex-1c.cpp
int vector_test(int, char**)
{
typedef dbstl::db_vector <double, ElementHolder<double> > dbl_vec_t;
DbEnv *penv = new DbEnv(DB_CXX_NO_EXCEPTIONS); // (2)
penv->open("dbenv",
flags | DB_CREATE | DB_INIT_MPOOL | DB_PRIVATE, 0777); // (3)
pdb = dbstl::open_db(penv, "vector2.db",
DB_RECNO, DB_CREATE | dboflags, 0); // (4)
dbstl::register_db_env(penv); // (5)
dbstl::register_db(pdb); // (6)
View stl-ex-1a.cpp
int vector_test(int, char**)
{
typedef std::vector<double> dbl_vec_t; // (1)
dbl_vec_t v1; // Empty vector of doubles. (1)
v1.push_back(32.1);
v1.push_back(40.5);
// The rest follows ...
View stl-ex-1b.cpp
int vector_test(int, char**)
{
typedef dbstl::db_vector <double, ElementHolder<double> > dbl_vec_t; // (1)
dbl_vec_t v1; // Empty vector of doubles. (1)
v1.push_back(32.1);
v1.push_back(40.5);
// The rest follows ...
View db-stl-example.cpp
#include "db_map.h" // Berkeley DB's STL Map support
using namespace dbstl;
main()
{
std::string key = "hello";
int value = 1234;
Db *dbp = NULL;
DbEnv *envp = NULL;