【C++基础汇总】A篇(完结)

1、::的作用:

C++中,双冒号::为作用域解析符,表示一个成员变量或成员函数所属的作用域。

在文件开头使用using关键字引入一个命名空间后,在后续代码中就可以直接使用该命名空间的类型和成员。

头文件中可以包含很多个命名空间,在标准库中,很多头文件定义了很多相同的类、函数和对象,并且通常将它们放在同一命名空间中,通常是std的命名空间

示例:vector和string都使用的std命名空间

#ifndef VECTOR_H
#define VECTOR_H

namespace std {
    template <typename T>
    class vector {
  
  {
    public:
        vector();
        ~vector();
        void push_back(const T& value);
           // 其他成员函数...
    private:
        // 内部数据结构...
    };
}
#endif // VECTOR_H
#ifndef STRING_H
#define STRING_H

namespace std {
    class string {
    public:
        string();
        string(const char* str);
        ~string();
        void append(const string& other);
        // 其他成员函数...
    private:
        // 内部数据结构...
    };
}

#endif // STRING_H

2、C++是对C语言的优化与进步,因此在C语言中需要进行大量指针才能实现的功能,在C++只需要一个函数操作即可。因此在C++中环境中编写代码时,若涉及大量C代码实现某功能时,一定要检索一下有没有此类的C++库函数,千万要记住,可以事半功倍,还能少出错!!

3、结构体无法直接转换为数组

因为结构体涉及字节对齐问题,因此无法直接将结构体转换为数组,尽量也不要用结构体++的形式,若有结构体对齐的行为,这样很容易出问题。

C++中如想将整数的结构体转换为整数数组,则可使用,使用接口reinterpret_cast转换将结构体类型转换为整数数组类型的引用。

4、C++中的容器

C++容器与C语言中数组的区别:

C++容器没那么高大上,就是C语言的数组、链表、结构体等数据结构形式+C++的成员函数实现的一组高级数据结构

C++中的容器一般是由STL标准模板库提供,如vector、list、deque,可以动态地删除、添加或者改变元素,容器的大小根据需要而改变,容器中可以存储任意对象。

容器是C++中针对数组只能存储一类对象、经常发生越界错误、无法动态定义长度大小等原因应运而生的的一类STL模版库。

使用上:在C++中定义一个容器后,然后检索其删除、添加的库函数,直接使用即可。

vector类似于数组的实现,在一块儿连续的地址空间中进行数据的存放。

优点为初始化时就可以动态分配数组大小,不必定义角标。可以使用push_back进行动态增加数组元素。缺点是因为没有角标,故无法直接知道数组元素大小,但如果要使用vector的话,一定要配合vector的成员函数,例如size()函数用于获取vector的长度,push_back用于添加元素等等,在vector初始化完毕后,vector是有边界的,得益于库函数才能实现动态操作容器,向vector传入比它大的数组肯定会导致踩内存的情况。

list是类似于消息队列的实现形式,LIFO的形式,同样有一堆成员函数,届时直接检索使用即可!


5、2025/01/23更

以后要全力扑到驱动方向了,这可能是自己最后一天接触C++的东西了,感慨万千,曾几何时,抱着总有一天C++会对C进行彻底的替代的认知,于是较为认真地学习了C++相关内容。在中间件开发过程中,在C++框架配合C语言内核的整体架构下,应用了C++的类、容器(vector、list)、String等关键字,因为应用的少,故只能算浅浅地入门。C++,希望下次工作遇见时能更娴熟地操作你!能认真地把你学习一遍!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱笑的七小沐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值