C++基础知识
jiaojinlin
这个作者很懒,什么都没留下…
展开
-
字符串和整型之间的转换
字符串转10进制整数、16进制整数和整形转换成字符串。原创 2023-12-10 18:25:06 · 66 阅读 · 0 评论 -
c++ string 去除左右空行
【代码】c++ string 去除左右空行。原创 2023-01-25 20:49:31 · 313 阅读 · 0 评论 -
std::string 大小写转换
c++ string 的大小写转换原创 2023-01-25 19:59:08 · 2423 阅读 · 0 评论 -
c++ 拷贝构造函数参数是否需要const
class A{public: A(){ cout<<"A constructor\n";} A(A& a){ cout<<"A copy constructor\n"; } ~A(){ cout<<"A destructor\n"; } };class B{public: B(){ cout<<"B constructor\n";} B(const B& a){ cout<.原创 2022-05-13 08:44:06 · 986 阅读 · 0 评论 -
c++ string 存储一个文件内容
如何实现string 存储一个小文件的全部内容std::ifstream input("one.txt", std::ios::binary)if(input.is_open()){ std::stringstream ss; ss << input.rdbuf(); cout << "file context: " << ss.str() << std::endl; std::string tmp(ss.str()); cout &原创 2021-01-17 20:38:19 · 3480 阅读 · 0 评论 -
c++ 析构函数设置成私有
class One{ public: One(){ cout<<"constructor\n"; } private: ~One(){ cout<<"destructor\n"; } friend void Destroy(One *one);};void Destroy(One *one){ if(one != nullptr){ delete one }}i.原创 2020-08-06 09:55:15 · 2012 阅读 · 0 评论 -
warning C4346: “std::vector<_Type,std::allocator<_Ty>>::iterator”: 依赖名称不是类型
template<class T>using vIterator = std::vector<T>::iterator;void traverse(vIterator<int> beg, vIterator<int> end){ while(beg != end) { std::cout<<*beg<<std::endl; ++beg; }}编译的时候会出现wa..原创 2020-08-04 14:46:14 · 832 阅读 · 0 评论 -
oc和c++中给一个对象赋空值,对象调用方法产生的不同反应
c++ 代码,类对象赋值为空值class test{public: int age; char* name; void say() { std::cout<<"hello my name is "<<name<<std::endl; } void greet() ...原创 2020-02-18 22:05:21 · 1112 阅读 · 0 评论 -
++、--前置操作和后置操作的区别
1、运算符前置,是先进行计算,再取结果int i=0,j;int arr[10]={0};j = arr[++i]; //相当于 i=i+1; j=arr[i];变量i先进行加1,然后再使用2、运算符后置,是先进性赋值,然后再计算,再取结果int i=0,j;int arr[10]={0};j = arr[i++]; //相当于 j=arr[0];i=i+1;变量i...原创 2020-01-05 17:01:23 · 977 阅读 · 0 评论 -
shared_ptr中高级应用
在编写基于虚函数的多态代码时,指针的类型转换很有用,比如把一个基类的指针转换成一个派生类的指针或者反过来。但是对于shared_ptr不能使用诸如static_cast<T*>(p.get())的形式,这样会导致转型后的指针无法再被shared_ptr正确管理。为了支持类似的用法,shared_ptr提供了类似的转型函数,static_pointer_cast<T>()...翻译 2019-01-21 18:37:34 · 1467 阅读 · 1 评论 -
结构体大小的计算
结构体中的成员可以是不同的数据类型,成员按照定义时的顺序依次存储在连续的内存空间。和数组不一样的是,结构体的大小不是所有成员大小简单的相加,需要考虑到系统在存储结构体变量时的地址对齐问题。首先需要知道偏移量的定义,结构体变量中成员的地址和结构体变量地址的差值。结构体大小等于最后一个成员的偏移量加上最后一个成员的大小。显然,结构体变量中第一个成员的地址就是结构体变量的首地址,因此,第一个成员的偏...原创 2019-01-23 21:51:13 · 169 阅读 · 0 评论 -
C++ 中 const的使用
1、const可以定义常量,编码中尽量使用const代替define定义的常量2、使用const保护参数void fun(const int a){ a=10;//compile error}3、const引用作为参数,可以提高效率,不用每个参数都会进行拷贝操作。4、类成员函数后面加上const,该函数不会修改类中的数据成员...原创 2019-01-06 22:25:22 · 127 阅读 · 0 评论 -
C++11 之后的指针简单介绍
C++11 之后有3中智能指针,std::unique_ptr、std::shared_ptr和 std::weak_ptr。unique_ptr类似于普通指针,但是在unique_ptr超出作用域或者删除时,会自动释放内存或资源。unique_ptr只属于它指向的对象。unique_ptr的一个有点时,发生异常的时候,必须释放存储空间。可以使用std::make_unique<>...原创 2019-01-06 22:18:21 · 224 阅读 · 0 评论