- C++算术符类型和所占用的最小长度
- 头文件不应包含
using
声明,因为头文件的内容会被拷贝到所有引用它的文件中去,如果头文件里有某个using
声明,每个使用此头文件的文件都会有这个声明 string
类,需要引入#include <string>
getline
函数,此函数的作用就是从流中读取一行数据(不包括换行符)到string
中
getline(basic_istream<_Elem, _Traits>& _Istr, basic_string<_Elem, _Traits, _Alloc>& _Str)
size()
函数返回的类型是string::size_type
。肯定是一个无符号整数,因此混用有符号和无符号数会导致一定的问题==
和!=
用来判断string
对象的相等性=
用来给string
对象赋值+
字符串相加,可以和字符串和字符字面值相加,但是要保证每个+
的两侧至少有一个string
对象(c++11)
使用增强for
循环遍历的时候,如果使用引用&
来遍历string
对象,那么可以改变string
对象的上的字符- 下标运算符可以取字符串的字符
cctype
库
cctype头文件- 标准容器类型
vector
- 包含
#include <vector> using std::vector;
- 如果元素是基本类型,则默认初始值被设置为
0
- 如果是类型,则由类默认初始化
size
函数返回的结果是vector<type>::size_type
而非vector::size_type
- 只有当元素的值可以比较的时候,
vector
对象才能被比较 - 下标获取指定元素,下标只能是无符号类型。而数组不一样。比如:
int *p=&ia[2]; int j=p[1]; int k=p[-2];
- 不能通过下标添加元素,只能通过
push_back
- 迭代器通过
begin
或者end
函数来获取,迭代器通过解引用能得到确定的元素。尾后迭代器解引用是未定义行为。同一个对象的尾后迭代器相等。迭代器可以使用自增等运算符 - 常量迭代器
vector<int> v; const vector<int> cv; // vector<int>::iterator auto it1=v.begin(); // vector<int>::const_iterator,它自身的值可以改(可以指向其他元素),但不能改写其指向的元素值。 auto it2=cv.begin();
c_str
函数,返回c
风格字符串。返回的类型是const char *
basic_string(_Iter _First, _Iter _Last, const _Alloc& _Al = _Alloc())
构造函数
char a[10] = "121"; string b(begin(a), end(a));
const
修饰的成员函数- 有
const
修饰的成员函数(指const
放在函数参数表的后面,而不是在函数前面或者参数表内),只能读取数据成员,不能改变数据成员;没有const
修饰的成员函数,对数据成员则是可读可写的。 - 除此之外,在类的成员函数后面加
const
还有什么好处呢?那就是常量(即const
)对象可以调用const
成员函数,而不能调用非const修饰的函数。 const
修饰的成员函数和非const
修饰的成员函数可以互相重载
- 有
- 箭头运算符
->
表示(*ptr).method
- 指针,引用和数组
// a是int数组 int a[4]; // a是int*的数组 int *a[4]; // a是指向int数组的指针 int (*a)[4]; // a是指向int数组的引用 int (&a)[4]; // 数组名是不可修改的左值,报错 a=1;
- 指针相减运算的结果是
ptrdiff_t
的标准库类型。差值可能为负值所以此种类型为带符号类型。和size_t
在同样的头文件 cstring
头文件并不是string
类的头文件,而是处理c
风格字符串char*
的头文件char str[20] = { 'a','b' }; strcat_s(str, " ");
- 多维数组
- 多维数组缺省数组大小只能在第一个维度缺省推断,其余维度不可
- 增强
for
循环可以遍历
// 编译报错,因为第一层循环是循环的数组,而auto对数组推断结果是指针,第二层循环指针就不合法了 for (auto x:array) for (auto y:x)
1 == sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)
这允许一种极端情况,其中字节有64
位大小,所有类型(包括char
)都有64
位宽,而sizeof
对每个类型均返回1
。aggregate type
聚合类型
变量、指针、类型初识
最新推荐文章于 2024-05-01 19:10:24 发布