QT第十十一课程笔记 - 数组和练习

Qt基础入门课程笔记 /QApplication抽象了QT的应用程序//QWidget抽象了窗口QWidget w;w.show();//进入消息循环,等待用户输入PS:Ctrl+Tab 切换文件目录Q_OBJECT 指当前类支持信号与槽的机制输出格式调整创建项目,项目右键添加新文件,选择Qt-Qt设计师界面类-Widget-类名:SmallWidget,完成;在smallWidget.ui中添加Spin Box和Horizon Slider控件;在主UI中添加widget控件; 阅读详情
AI摘要

本文介绍了C++中数组的声明、初始化、访问以及注意事项,包括数组大小的固定性、动态数组的std::vector,并展示了如何使用Lambda表达式作为回调函数进行计算操作。

2.2.7 数组

在 C++ 中,数组是一种存储固定大小的相同类型元素的序列。数组的所有元素都存储在连续的内存位置上。这种数据结构非常适合于存储具有固定数量和相同数据类型的元素集合。

声明数组

声明数组的基本语法如下:

数据类型 数组名[数组大小];

例如,声明一个类型为 int 的数组,包含 10 个元素:

int myArray[10];

初始化数组

在声明数组时,您可以同时初始化数组:

int myArray[5] = {10, 20, 30, 40, 50};

如果您在初始化数组时没有指定所有元素的值,未初始化的元素将被自动设置为该数据类型的默认值(对于基本数据类型通常是 0):

int myArray[5] = {10, 20}; // 其余元素将被初始化为 0

访问数组元素

您可以通过指定索引来访问数组中的元素。数组索引是从 0 开始的,所以数组的第一个元素是 数组名[0],第二个元素是 数组名[1],依此类推:

int value = myArray[2]; // 访问第三个元素

示例

以下是使用数组的简单示例:

#include <iostream>
using namespace std;

int main() {
    int myArray[5] = {10, 20, 30, 40, 50};
	
    // 输出所有数组元素的值
    for(int i = 0; i < 5; ++i) {
        cout << "Element at index " << i << ": " << myArray[i] << endl;
    }

    return 0;
}

注意事项

  • 数组的大小必须在编译时已知,且不能更改。
  • 数组索引越界是常见的错误,可能会导致未定义的行为。
  • 对于更复杂的用例,您可能需要使用 C++ 的标准模板库(STL)中的容器,如 std::vector,它提供了可以动态改变大小的数组。
  • 数组的元素存储在连续的内存位置上,这使得访问数组元素非常快。

2.2.8 练习

  • 计算器支持加减乘除
#include <iostream>
using namespace std;

int add(int a,int b)
{
    return a+b;
}

int min(int a,int b)
{
    return a-b;
}

int mul(int a,int b)
{
    return a*b;
}

float divRet(int a,int b)
{
    return (float)a/b;
}

int main() {

    int a;
    int b;
    char calWay;
    while(1){
        cout << "请输入两个数:"<< endl;
        cin >> a;
        cin >> b;

        cout<<"请输入运算符号:+ - * /" <<endl;
        cin >> calWay;

        switch(calWay){
        case '+':
            printf("两数之和是%d\n",add(a,b));
            break;
        case '-':
            printf("两数之差是%d\n",min(a,b));
            break;
        case '*':
            printf("两数之积是%d\n",mul(a,b));
            break;
        case '/':
            printf("两数之余是%f\n",divRet(a,b));
            break;
        default:
            printf("运算符输入错误,请重新输入\n");
        }
    }
}

加入Lambda表达式和回调函数的做法(只是为了验证学习,此等方法比较low)

#include <iostream>

using namespace std;

/*
int add(int a, int b)
{
    return a+b;
}

int minu(int a, int b)
{
    return a-b;
}

int mul(int a, int b)
{
    return a*b;
}

double diliv(int a, int b)
{
    return (double)a/b;
}
*/

int calculator(int a, int b, int (*p)(int a, int b))
{
    cout << "开始计算" << endl;
   // p(a,b);
}

int main()
{
    int a = 0;
    int b = 0;
    char cal;

    while(1){
        cout << "请输入两个数:" << endl;
        cin >> a;
        cin >> b;
        cout << "请输入运算符+,-,*,/" << endl;
        cin >> cal;
       // auto minu = [a,b]()->int{ return a - b;};
        switch(cal){
        case '+':
            cout << calculator(a,b,[](int a, int b){return a + b;}) << endl;
            break;
        case '-':
            cout << calculator(a,b,[](int a, int b){return a - b;}) << endl;
            break;
        case '*':
            cout << calculator(a,b,[](int a, int b){return a * b;}) << endl;
            break;
        case '/':
            cout << calculator(a,b,[](int a, int b){return a / b;}) << endl;
            break;
        }
    }

    //  cout << "Hello World!" << endl;
    return 0;
}

QT字节数组类QByteArray QByteArray 阅读详情

相关推荐

Qt案例练习(有源码)

qt各种小案例练习

qq_71286244的博客 1798

【Qt】数组数据类型及用法

QList 是Qt中最常见的动态数组类型之一。它可以存储任何数据类型 T,包括基本数据类型(例如 int、double)和自定义类。QList 具有自动扩展和收缩功能,使其非常适合用作动态大小的数组。

weixin_45378526的博客 6246

零基础Qt笔记<传智教育>Qt版本:2022 5.15

闲来无事记录一下

q5120192609的博客 3644

数组的定义与使用(一)

【本节目标】 理解数组的基本概念 掌握数组的基本用法 数组与方法互操作 熟练掌握数组相关的常见问题和代码 数组的基本概念 为什么要使用数组? 回答:简化代码,集合管理。 举个简单里例子,我们现在要存入5个学生的JavaSE考试成绩,并对其进行输出 如果这样写的话,太麻烦了: public class TestStudent{ public static void main(String[] args){ int score1 = 70; int s

Gremmie的博客 5894

QT学习笔记

QT学习笔记(一) 作者:Kagula 最后更新日期:2015-01-07 目的: 了解QT基本开发流程。 正文: 准备: 环境: VS2010SP1、 VS2013Update3、 Win7SP1-64bits 安装: [1]Qt 5.4.0 for Windows 32-bit (VS 2010, OpenGL, 625 MB)  [2]V

lee353086的专栏 1万+

C++/QT学习笔记

C++自带的命名空间std,要声明using namespace std;才可使用,里面是C++语言基本的APInamespace 自定义名称 {这里面可以是数据,函数,与项目相关的一些算法等 } 有点类似C语言的结构体,但又比结构体功能强大,定义到头文件中,使用时要包含头文件还要声明。

weixin_48554101的博客 1611

QList (链表) & QVector (数组)

一个是随机存取,一个是连续存取,所以list插入删除很快,vector查询很快。 但是vector有个地方一定要注意: vector:如果你添加元素,但是vector的容量(是容量,不是大小,容量比大小大,会预先多分配空间)不够的话,系统就会重新分配一段内存,然后把原先的内容全部拷贝过去,然后删除原先的内容。所以,如果你设定了一个纸箱vector的指针,或者说迭代器,在你添加元素之后,这个

非常道的博客 2万+

Qt入门教程:QList动态数组

在Qt中,QList是一种非常常用的数据结构,它提供了一种动态数组的实现。这篇文章将介绍如何使用QList来创建、修改和访问动态数组,并提供相应的源代码示例。要对QList中的元素进行迭代访问,我们可以使用迭代器。在使用QList之前,我们需要在代码中引入相应的头文件。这样,我们就创建了一个包含1、2、3、4和5的QList对象。要访问QList中的元素,我们可以使用下标操作符。要修改QList中的元素,我们可以使用下标操作符。请注意,QList的索引是从0开始的。要删除QList中的元素,我们可以使用。

James_CODER的博客 848

QT中二维数组的使用

QVector的使用(二维数组) 注意: 注释的部分为输出的值 在头文件定义一个二维数组 QVector<QVector<int>> array; 一 初步认识 手动通过append给二维数组赋值 //10行4列的数组 QVector<int> temp; for(int i=0;i<10;i++) { temp.append(1); temp.append(2); temp.app.

Vivi的城 2万+

CLIP-Count代码配置以及踩坑记录

CLIP-Count代码配置以及踩坑记录

学术菜鸡 1011

研发工作量科学量化评估模型:从多维系数到等级落地指南

摘要:本文提出了一套基于多维系数的科学量化评估模型,用于精准评估软件开发工作量。该模型从需求复杂度、技术难度、质量要求和依赖风险四个核心维度进行量化评估,通过系数乘积计算综合工作量。文章详细说明了各维度的系数区间划分标准,并演示了从基础工作量估算到综合系数计算的具体步骤。该模型通过结构化评估过程,将主观经验转化为客观量化指标,帮助团队提高工作量评估的准确性,增强项目交付的可预测性。其价值在于使评估过程透明化、结构化和可追溯,从而减少项目延期风险,优化资源规划。

友莘居士的博客 1684

工控软件开发框架,GTK和QT好难选,快来拯救开发者。

工控软件开发框架如何选,有人喜欢GTK,有人钟意QT,而且每个人都有自己的一番道理,好像说的还都有理,这种情况该怎么办呢?带着你深入了解下。

2401_82943878的博客 2194

MOBsf联动雷电模拟器(在docker国内库撤销后)

MobSF (全称:Mobile Security Framework,中文名:移动安全框架) 是一个自动化的移动应用程序(Android / iOS / Windows)开源测试工具,该工具采用Python开发,能够执行静态,动态和恶意软件分析。MobSF提供了很多自动化分析功能,尤其适用于Android应用。安装必备(默认已准备好)docker(kali) 现在的国内镜像源都已经下架了只能开代理下载桌面版然后给pull到本地。

qq_48149564的博客 1600

【C++】QT学习的小练习编程

QT学习过程中的知识点练习代码,本篇代码占大部分

修成真的博客 2344

在后端设计中,GDSLL,LEF,DEF,SDF,SPEF,SDC各代表什么意思?前端和中端流程中,SVF,SAIF又代表什么意思?

在后端设计中,GDSLL,LEF,DEF,SDF,SPEF,SDC区别?前端和中端流程中,SVF,SAIF代表什么意思?

weixin_43274923的博客 1万+

el-table通过上下左右键移动光标

在Element Plus的el-table中包含el-input和el-select组件,要实现上下左右键控制光标位置,需要通过focus和blur跟踪判断当前是哪个el-input或el-select有焦点,当按键按下时,通过监听,计算下一个获取焦点元素的索引,通过focus方法将焦点切换至改元素。

秋思的博客 1350

QT课程设计题

要求采用面向对象系统分析与设计方法,首先对问题进行需求分析,识别类与对象,设计合理的类结构与程序结构实现程序功能(恰当应用教材所介绍的各种数据结构和算法),用C++语言编写程序;然后设计各种可能的数据(测试对象)对程序进行测试,观察运行结果是否正确,确保在可见范围内的测试对象都能得到正确结果。图形用户界面统一采用QT,使用文件保存文档,将程序的各项信息保存到文件并能打开;使用统一的Windows图形用户界面,对话框中用合适的控件,如按钮、编辑框、组合框、列表框、单选钮、复选钮等。

程序设计 2726

CDR学习笔记——02

这篇写一些高级CDR的架构原理。

... 1017

实战|Qt开发WordBN笔记软件#10 添加Font Awesome字体图标

课程目标: 一、在QML工程引入Font Awesome字体图标功能。 二、新建自定义字体图标基础组件YFontText,验证图标显示效果。

天恩软件工作室 1446

用VASP计算GW+BSE

VASP在5.3以后的版本都能用解BSE方程的方法,在计算光吸收的过程中考虑激子效应。 下面就来写一个用BSE计算bulkSi的例子 首先,介电函数的计算是在GW计算的基础之上的。这里首先介绍G0W0的计算(我们这里直接在PBE的波函数基础上进行G0W0计算)。 1.PBE自恰计算,写WAVECAR System= Silicon groundstate occupied

ultra1989的专栏 2万+

Raptor码(一):2007RFC5053标准编解码学习

RFC 5053 标准

a_beatiful_knife的博客 3493

QT自学过程记录(1):为什么学习QT,课程安排以及QT安装教程

自学视频来源B站,是传智播客黑马程序员的课程。B站网址:https://www.bilibili.com/video/av53077699; QT下载安装教程都可以参考这个文章:https://jingyan.baidu.com/article/d5c4b52baa73a5da560dc5f9.html; 我自己下载安装的软件包还有找的一些学习资料等,可以参考这个文章:https://blog...

FightingBoom的博客 1910

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

实战Qt开发WordBN笔记软件#01 搭建开发环境:VS2019+Qt6.5+CMake+Git

课程目标:1 安装VS2019社区版本、Qt6.5.3版本、CMake和Git工具。

天恩软件工作室 1389

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Qt数组的操作和遍历

这些类提供动态数组的功能,支持高效的元素操作和遍历。下面我将逐步解释常见操作和遍历方法,确保结构清晰。所有时间复杂度描述使用LaTeX格式:行内表达式如。通过以上步骤,您可以高效操作和遍历Qt数组。如有具体场景(如多线程),请提供更多细节!范围for循环是首选,因为它易读且高效。遍历数组是常见需求,Qt支持多种方式(均时间复杂度。,独立公式单独成段(例如,遍历算法的时间复杂度为。以下示例展示数组的创建、操作和遍历(使用。在Qt框架中,数组通常使用。类实现(在Qt 6中,遍历数组的时间复杂度为。

2501_93570320的博客 1770

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

QT 学习笔记(七)

QT 布局管理器,自定义控件,样式表

每天进步一点点! 5073

QT跨平台应用程序开发框架(3)—— 信号和槽

有时候Qt内置的信号和槽可能无法满足我们的需求,所以我们可以自己实现信号和槽,我们先说自定义槽我们上篇文章已经用自定义槽实现了按按钮切换按钮里的文本:所以所谓的槽函数,操作过程和自定义一个普通的成员函数没啥区别除了上面这种最基础的,还有第二种更便捷的方法先通过拖拽方式创建一个按钮,右键这个按钮,点击“转到槽”:可以看到,我们通过这种方式生成的槽函数,并没有通过connect关联,因为在 Qt 中,除了通过connect 之外,还可以通过函数名字的方式来自动连接比如上面的槽函数名字。

aaqq800520的博客 1477
上一篇: QT第五六七节课笔记 - 用C语言快速入门
下一篇: QT第12-14节课程笔记-类的引入
上官可编程
博客等级 码龄14年 1398粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

上官可编程

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

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

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

打赏作者

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

抵扣说明:

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

余额充值