1.这里RQ1包含了一个字符串,public里面其实就是一个默认构造函数,一个构造函数,一个复制构造函数,一个析构函数,一个赋值符运算
如果用string的话复制构造函数,析构函数和赋值运算符都可以因为string对象提供了自己的内存管理功能而省去
#include <string>
using namespace std;
class RQ1
{
private:
string st;
public:
RQ1() : st("") {} //默认构造函数
RQ1(const char * s) : st(s) {} //普通构造函数
~RQ1() {};
};
2. string不需要预设字符串最大字符数; string可以直接赋值
3.
#include <string>
#include <cctype>
using namespace std;
void ToUpper(string & str)
{
for (int i = 0; i < str.size; i++)
str[i] = toupper(str[i]);
}
4. 这题除了第三个其他都不正确
第一个指针永远指向一个内存地址,而不能是一个数组,所以只能new int,而不能new int[20];
第二个没有给出指针的名字
第四个没有给pr new出一个地址来就赋值了
第五个double是多余的
5. 栈意味着后进先出,假设放十个球杆进去,要拿第一个球杆就得把之后放的九个球杆全部拿出来。。。这也不能说这个袋子坏了吧,只能说很2
6.因为set容器之存储每个值得一个拷贝,如果一个人打了5个5分,这个容器只会记录一次
7.使用迭代器可能使用类似指针的对象的接口来遍历不以数组方式组织的数据,比如双向链表
8. 这是为了提高通用性,因为这样STL函数可以用于执行常规数组的常规指针,也可以执行STL容器类的迭代器
9. a可以将一个vector对象直接赋给另一个
b vector可以管理自己的内存,因此不用预设大小,vector对象自己可以个字的调整长度
c 可以使用很多方法,比如at()来检查边界