习题三:C++中的结构体(定义时就可以初始化)和vector数组用法

本文详细对比了C和C++中结构体的差异,包括C++中对结构体的增强特性,如构造函数、析构函数的使用,以及类与结构体的关系。同时,提供了一个C++代码示例,展示如何使用vector逆序遍历链表。

一、C和C++中的结构体不同

1.C++对struct关键字进行了增强:如下代码

struct info
{
	int a;
};

int main(int argc,char *argv[])
{
	info data;//在c中这样定义变量编译通不过,必须要加上struct,而在c++中这样是允许的
	return 0;
}

2.C++中可以使用构造函数对结构体成员进行初始化,而C中不可以

struct info
{
	int a;
	info(int x):a(x){}  //在c++中允许这样对成员变量初始化,而c中不允许
};

3.C++中可以定义析构函数,而C中不可以

​
struct info
{
	int a;
	info(int x):a(x){}  //在c++中允许这样对成员变量初始化,而c中不允许
	~info(){}
};

​

4.C++中类是由结构体衍变而来,因此对类的各种重载,友员操作对结构体同样适用。但是在类中如果不声明为public类型,默认是private。而在结构体中默认为public,这里就不做测试,有兴趣的可以自己测试。

二、vector数组用法

https://blog.youkuaiyun.com/weixin_41743247/article/details/90635931

三、习题

时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 热度指数:1327261

本题知识点: 链表

 算法知识视频讲解

题目描述

输入一个链表,按链表从尾到头的顺序返回一个ArrayList。

解答:

class Solution {
public:
    vector<int> printListFromTailToHead(ListNode* head) {
        ListNode*p=head;
        vector<int>array;
        while(p!=NULL){
            array.push_back(p->val);
            p=p->next;
        }
        reverse(array.begin(),array.end());
        return array;
    }
};

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值