13.44 编写标准库string类的简化版本,命名String.你的类应该至少有一个默认构造函数和一个接受C风格字符串指针参数的构造函数.使用allocator为你的String类分配所需内存. 13.47 添加拷贝构造函数和拷贝赋值运算符,并添加打印语句,则每次函数执行时打印一条信息. 13.48 定义一个vector<String>并在其上多次调用push_back.运行程序,观察String被拷贝了多少次. #include<iostream> #include<st…
1 昨日回顾 1.static 对整个类共享 可以直接用 类::方法 调用 如果是私有的 可以提供一个静态的访问静态成员的方法 2 自定义的数组类-重载操作符[] 3 重载new和delete 4 重载操作符() 5中午回顾 重载 各种操作符 6不建议重载并且和或者操作符 重载的 && 不会发生短路现象 重在的 || 也不会发生短路 永远会执行这个操作符,就违背了语言的原意 7智能指针操作符重载 总结:智能指针其实是一个对象,当栈中的这个对象被销毁的时候调用对象中的析构函delete掉原始…
题目描述 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数. 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置.注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章 中的某一独立单词在不区分大小写的情况下完全相同(参见样例1 ),如果给定单词仅是文章中某一单词的一部分则不算匹配(参见样例2 ). 输入输出格式 输入格式: 输入文件名为stat.in ,2…
#include <iostream> #include <cstring> using namespace std; class String; class Data{ // 抽象基类Data public: ; // virtual比较函数 }; class String: public Data{ // String类.继承自Data public: static int num_strings; // 程序周期内创建的String对象个数 ; // 限制字符长度 Strin…
有关stl容器删除元素的问题,错误的代码如下: std::vector<struct> mFriendList; ... std::vector<struct>::iterator iter = mFriendList.begin(); for ( ; iter != mFriendList.end(); ++iter) { if (...) mFriendList.erase(iter); } 记得当时Once给我说过这个问题,还给我改过代码,我当时不明白为什么,只知道程序执行的…
1.c++STL中只有list自带了排序函数: (1).若list中存放的是int类型或者string类型,直接利用sort即可: list <int> list1;           list1.sort();          此时默认为升序,若要使用降序,直接自定义cmp函数即可. (2).若存放的是结构体或其他指针类型,需要自己定义比较结构体:           struct student { int num;};           struct node { bool ope…
可以直接利用STL中定义好的traits_iterator来萃取 /*特性萃取器*/ template <class unknown_class> struct unknown_class_traits { typedef typename unknown_class::return_type return_type; }; /*特性萃取器 —— 针对原生指针*/ template <class T> struct unknown_class_traits<T*> {…
一.string类 1.构造函数 string实际上是basic_string<char>的一个typedef,同时省略了与内存管理相关的参数.size_type是一个依赖于实现的整型,是在string中定义的.string类将string::npos定义为字符串的最大长度,通常为unsigned int的最大值.另外,使用缩写NBTS(null-terminated string)来表示以空字符结束的字符串——传统的C字符串.下面的表格中列出了string的构造函数: 构造函数 描述 str…
第16章 string类和标准模板库 1. string容易被忽略的构造函数: string(size_type n, char c)长度为n,每个字母都为c string(const string & str, size_type pos = 0, size_type n = pos)初始化为str中从pos开始到结尾的字符,或从pos开始的n个字符 string(const char *s, size_type n)初始化为s指向的前n个字符,即使超过了s的结尾: string(Iter b…
STL中最简单也是最有用的容器之一是vector<T>类模板,称为向量容器,是序列类型容器中的一种. 1.vector<T> 对象的基本用法(1)声明:vector<type>  v;    //容量为0构造v对象,指定元素类型为typevector<type>  v(n);    //元素为n构造v对象,指定元素类型为type, vector<type>  v(n, initValue);    //元素为n构造v对象,指定元素类型为type,…