C/C++ 小知识点记录
1.运算符:>>、<<、&
“>>”:右移,移除二进制表示的最后一位
“<<”:左移,二进制表示末尾添“0”
“&”:按位与,取二进制表示的末尾一位进行“与”运算
2.memcpy与strcpy的区别
(1)strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类、vector数组等。注意:vector不同于数组,vector对象在使用时不会转换成指针,因此需要取地址符&来得到vector对象的地址,例如:memcpy(&test1, &test, sizeof(test));
(2)strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出。memcpy则是根据其第3个参数决定复制的长度。
(3)用途不同。通常在复制字符串时用strcpy,而需要复制其他类型数据时则一般用memcpy
3.set集合
set只能通过迭代器(iterator)访问:
set<typename> a;
for(set<typename>::iterator it = a.begin(); it != a.end(); it++){
cout<<*it;
}
注意:除了vector和string之外的STL容器都不支持*(it + i)的访问方式