11 c++ 关联容器

C++关联容器 C++关联容器相关知识 阅读详情

关联容器类型

// 关联容器支持高效的关键子查找
// 有序容器
map<int, string> map1;          // 键值对
set<int> set1;                  // 键
multimap<int, string> map2;     // 键值对,允许键重复
multiset<int> set2;             // 键,允许键重复

// 无序容器,使用哈希排序
unordered_map<int, string> map3;
unordered_set<int> set3;
unordered_multimap<int, string> map4;
unordered_multiset<int> set4;

初始化

// 定义并赋值
map<string, string> keyValues { {"key1", "value1"} };
for(auto i : keyValues){
    cout << "key:" << i.first << endl;
    cout << "value:" << i.second << endl;
}

// 定义空的 map
map<string, string> keyValues1;
keyValues1["key1"] = "value1";      // 通过键赋值,如果对应的键值对不在,则新建
keyValues1["key2"] = "value2";
for(auto i : keyValues1){
    cout << "key:" << i.first << endl;
    cout << "value:" << i.second << endl;
}

set<string> keys { "key1" };
for(auto i : keys){
    cout << "key:" << i << endl;
}

自定义比较操作

bool compareOpt(const string &left, const string &right){
    return left.size() < right.size();
}

void customizeCompareOptTest(){
    // 自定义比较操作,如果key没有 <运算 或 我们希望自定义比较
    // decltype(compareOpt)*中,decltype(compareOpt)等于compareOpt函数类型,语句的意思是 是个指针,指针指向compareOpt函数类型
    map<string, string, decltype(compareOpt)*> map1(compareOpt);
}

pair

// 键值,从map循环中取出的项便是pair
pair<string, string> pair1{"key", "value"};
cout << pair1.first << endl;    // key
cout << pair1.second << endl;   // value

关联容器操作

    map<string, int> map1;
    map<string, int>::key_type keytype;     // string
    map<string, int>::mapped_type maptype;  // int
    map<string, int>::value_type valuetype; // pair<string, int>
    
    map1.begin();   // 迭代器
    map1.end();

    map1.insert({"a", 1});  // 添加元素,若 "a" 已在map中则什么也不做
    map1.erase("a");        // 删除 "a" ,返回删除数量(对于 multimap,删除数量可能大于1)

    map1["b"] = 3;      // 下标操作
	auto b = map1["b"];
	auto c = map1.at("b");		// 获取值

    map1.find("a");     // 查找 "a", 返回一个迭代器,指向 "a",若为找到,返回尾后迭代器
    map1.count("a");    // 查找 "a" 的数量
    map1.lower_bound("a");  // 返回关键子小于 "a" 的元素列表迭代器,迭代器指向列表最后一个元素的后一位
    map1.upper_bound("a");  // 返回关键子大于 "a" 的元素列表迭代器,迭代器指向列表第一位

特殊的情况

std::map<std::string, DocumentTitle>

如上,如果DocumentTitle没有默认的构造函数,那么我们无法使用下标操作

map1["b"] = 3;      //  错误

头文件

#include <set>
#include <map>
#include <unordered_map>
#include <unordered_set>
c++11 标准库关联容器 map unordered_map 输入: 一段字符,结束符号为q。 输出: 出现次数最多,如果有多个,就一起输出,用空格隔开。 分析: 这种用map处理最简洁,key是输入的字符,value是字符的次数,寻找最大的数,然后遍历map,判断map的second参数是不是max,是就输出map的第一个参数。因为是多个string注意用auto类型表示迭代器it的类型,或者写<map<string,int>::iterator> it #include<iostream> #include&lt. 阅读详情

相关推荐

C++ Primer 第11章关联容器习题

练习11.4:扩展你的单词计数程序,忽略大小写和标点。例如,"example."、"example,"和"Example"应该递增相同的计数器 思路: 1、将输入的单词转为小写 2、如果有标点,则将其删去(利用remove_if和erase) 这里用到的remove_if和erase又再次印证了书中前面说的一句话:标准库算法不会直接改变容器的大小和元素。 remove_if只是将使谓词为...

seineo 641

[C++] 关联容器

关联容器介绍

A_ns_wer_的博客 767

C++Primer笔记之关联容器的使用详解

本篇文章对C++Primer 关联容器的使用进行了详细的分析介绍。需要的朋友参考下

c++关联容器详细介绍

关联容器是C++标准库的一部分,用于存储和管理具有键值对的数据元素。与顺序容器(如vector和list)不同,关联容器的主要特点是它们能够快速查找特定键的值。这是因为关联容器内部使用了高效的数据结构(如二叉树或哈希表)来组织数据。std::set:一个集合,包含唯一元素,按特定顺序排序。std::map:一个映射,包含键值对,其中键是唯一的。std::multiset和std::multimap:类似于set和map,但允许键的重复。

shopeeai的博客 1893

基于车牌识别的停车收费系统的设计与实现(源码+开题)

本系统(程序源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景: 随着城市化进程的加速和汽车保有量的增加,停车难成为了一个普遍存在的问题。传统的停车收费方式存在着效率低下、管理混乱等问题。因此,开发一款基于车牌识别的停车收费系统具有重要的现实意义。研究意义: 基于车牌识别的停车收费系统可以有效地解决传统停车收费方式在效率和准确性方面的问题,提高停车服务的效率和质量。

迟限程序设计 1392

Cadence导入tsmcN65GP PDK的完整流程与常见问题解析

本文详细介绍了Cadence导入tsmcN65GP PDK的完整流程,包括文件解压、目录结构解析、安装脚本运行及Cadence集成配置。重点解析了常见问题如文件路径错误、权限问题和工艺库显示不全的解决方案,并提供了实战技巧与优化建议,帮助用户高效完成PDK安装与配置。

weixin_29215391的博客 546

【C++】关联式容器

万字长文,涵盖Set、Map、二叉搜索树(BSTree)、自平衡二叉搜索树(AVLTree)、红黑树、哈希表、位图等概念和代码的解读,内涵大量自定义实现代码,以及图片解读

Long_kin的博客 921

MTK MT6833平台屏幕与TP驱动移植实战:从FAE伪代码到内核模块集成

本文详细介绍了在MTK MT6833平台上进行屏幕与TP驱动移植的完整实战流程。文章从解析供应商提供的初始化伪代码入手,逐步拆解了在LK阶段点亮屏幕、在内核层集成Panel驱动以支持休眠唤醒,以及移植并调试sitronix_ts触摸驱动的核心步骤与关键技巧,为嵌入式开发人员提供了从零到一集成新硬件的清晰指南。

rnn9storyteller的博客 441

C++ 关联容器

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、使用二、关联容器概述pair类型关联容器操作增总结 前言 关联容器map和set 最简单的散列表:数组,arr[key] = value 按关键字有序保存元素 底层实现 查询效率 增删效率 map 关联数组:保存关键字-值对 红黑数 O(log n) O(log n) set 关键字即值,即只保存关键字的容器 红黑数 O(log n) O(log n) multimap 关键字可重复出现的map.

surfaceyan的博客 1548

android技术--------如何解决弹出键盘只影响当前fragment输入的窗口

题目比较长,也可能有很多人不明所以这东西有啥可写的,简单来说就是实现近似于Android Pad 上QQHD聊天的界面效果,搞了很长的事件,今天终于搞定。 android3.0新加了组件Fragment称之为碎片,对这个一无所知的请自觉补习。今天的阐述将基于此组件。 fragment可以放入activity中,并随activity的生命周期变化而变化,但当相应键盘事件的时候,就比较让人挠头了,

3507

保姆级教程:不用看古早代码,5分钟搞懂泛微ecology9附件存储与接口调用

本文详细解析了泛微ecology9附件存储与接口调用的核心原理,提供从基础概念到实战操作的完整指南。通过拆解文档化附件设计理念、解析RESTful接口参数,并给出Python代码示例,帮助开发者快速掌握附件上传与业务集成的关键技巧,提升二次开发效率。

weixin_28688385的博客 350

【C/C++】C++11 无序关联容器的诞生背景

因此,在需要高效地进行元素的查找、插入和删除操作的场景下,应该使用无序关联容器。但是,由于哈希表的实现方式,无序关联容器的元素并不是按照它们被插入的顺序存储的,因此在需要有序存储元素的场景下,应该使用有序关联容器。由于无序关联容器的实现方式是基于哈希表的,它们使用哈希函数将元素的键映射到哈希表中的位置,因此可以快速地进行元素的查找、插入和删除操作,平均时间复杂度为 O(1)。因此,无序关联容器适用于需要高效地进行元素的查找、插入和删除操作的场景,而有序关联容器则适用于需要有序存储元素的场景。

Michael 591

Matlab双目相机标定

1 概述 现在有许多双目相机在出厂时就已经标定好了,用户拿到手后可以直接使用,例如Intel Realsense系列。但是有些相机出厂的时候并没有完成标定工作,因而这个时候就需要我们自己来标定。由于笔者曾改装过一个双目相机,最远可以测至50m,因此有一定的心得体会想给大家分享一下。本文主要介绍双目相机标定的整个过程,以及导出标定数据的方法。 相机标定主要分为手动标定和自动标定,手动标定比较繁琐,这里主要介绍基于matlab工具箱的自动标定方式来对双目相机进行标定。具体的相关标定细节也可以参照这篇博客:m

weixin_46133643的博客 2万+

【C/C++】C++11无序关联容器与有序关联容器的性能测评实验

C++11 提出了无序关联容器。关于新的容器进行实验测评,用以确认其适用场景。

Michael 265

Centos 7 Linux 安装单机 Hadoop(HDFS):下载、安装、配置、测试

本文详细介绍了在 CentOS 7 系统上安装与配置单机 Hadoop(HDFS)的完整流程,涵盖 JDK 环境准备、Hadoop 安装包下载与部署、核心配置文件(core-site.xml、hdfs-site.xml 等)修改、SSH 免密登录设置、HDFS 格式化及服务启动,并通过命令行与 Web 界面验证 HDFS 和 YARN 功能,适合 Hadoop 初学者快速搭建本地测试环境。

寒水馨 · 轻量级技术文档 · hanshuixin.org 3237

Darknet-Yolov3 移植过程

本教程面向使用寒武纪平台进行深度学习推理任务的开发者。针对当前主流检测网络darknet-yolov3,进行寒武纪平台的移植。开发者对照移植过程,能够利用寒武纪智能处理器设备完成多种场景的目标检测任务。本实验代码基于 Neuware 1.6.1 与 Python 2.7 环境。

shengyin714959的博客 438

‌C++11的初始化列表:如何快速填充关联容器?

在C++11中,初始化列表为关联容器(如、)提供了简洁高效的填充方式。以下是具体方法和示例:通过花括号在构造时直接填充元素: 使用的重载版本接受初始化列表: 对值类型为容器的关联容器(如套): 若键或值为自定义类型,需确保支持比较操作:

2501_93876579的博客 292

深度学习工具包 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")

《c++primer》 第11章:关联容器

/ 函数演示关联容器的基本特性// 无参数// 定义一个 set,元素类型为 string,自动按字典序排序// 定义一个 map,键为 string 类型,值为 int 类型,键自动按字典序排序。

qq_40844444的博客 233

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

C++11新特性(38)- 无序关联容器

C++11之前的关联容器在C++11之前的关联容器一共有四种。首先是两种最基本的类型:map和set。map中保存的是关键字-值的组合,而set中只保存关键字。map和set中的关键字不允许重复,一旦相同的关键字重新写入,则原来的内容被覆盖。如果希望关键字可以重复,可以使用multimap和multiset。用图表表示就是下面这样。由于这些关联容器的存储位置是根据比较运算符决定的,所以也成为有序关...

面向对象思考 1362

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

C++ primer plus 第16章string 类和标准模板库, 无序关联容器(C++11)

C++ primer plus 第16章string 类和标准模板库, 无序关联容器(C++11)

zhyjhacker的博客 447

【c++ primer 笔记】第11章 关联容器

关联容器中的元素按关键字来保存和访问顺序容器中的元素按他们在容器中的位置来保存和访问关联容器与顺序容器许多行为相同,但是有着根本不同,不同之处反应关键字作用关联容器支持高效的关键字查找和访问关联容器包括map和set。头文件定义map和multimap在头文件 map 中,set和multiset在头文件 set 中,无序 map 和无序 set 分别在头文件 unordered_map 和 unordered_set 中。容器类型解释按关键字有序保存元素map关键数组:保存。......

小呆鸟blog 1596

C++ primer 第11章 关联容器

文章目录使用关联容器map示例关联容器概述定义关联容器关联容器值初始化multimap和multiset关键字类型的要求pair类型pair上的操作关联容器操作关联容器额外的类型别名关联容器迭代器map迭代器set迭代器关联容器和算法添加元素向map添加元素检测insert的返回值使用insert代替下标操作写单词计数程序删除元素map的下标操作访问元素multimap查找元素代码示例一:coun...

weixin_43116900的博客 944

c++11の关联容器

一、关联容器 C++的容器类型可以分为顺序容器和关联容器两大类。对于关联容器,主要有map和set,对于这两种,根据不同的维度,衍生出了8种容器 map //值对 set //仅有值 multimap ...

weixin_30439131的博客 103

Cpp-Primer关联容器完全教程:11个关键知识点掌握map和set

C++ Primer中的关联容器是高效数据处理的核心工具,本文将通过11个关键知识点带你系统掌握map和set的使用技巧。无论是初学者还是有经验的开发者,都能从这份实战指南中快速提升容器操作能力,轻松应对复杂数据管理场景。 ## 1. 关联容器的核心优势:自动排序与快速查找 关联容器(map和set)与序列容器的本质区别在于其内部元素按**键(key)自动排序**,这使得查找操作的时间复杂度达

gitblog_00284的博客 510

【C++】【C++ Primer】11-关联容器

【C++】【C++ Primer】11-关联容器1 使用关联容器1.1 关联容器简介1.2 使用map1.3 使用set2 关联容器概述2.1 定义关联容器2.1.1 定义和初始化关联容器的方式2.1.2 初始化multimap或multiset2.2 关键字类型的要求2.2.1 有序容器的关键字类型2.2.2 使用关键字类型的比较函数2.3 pair类型2.3.1 pair类型概述2.3.2 创建pair对象的函数3 关联容器操作3.1 关联容器迭代器3.1.1 set的迭代器是const的3.1.2 遍

慕容陌尘的博客 1609

C++11——关联容器类型

标准库提供8个关联容器,这8个容器间的不同体现在三个维度上

小雨点点点点的博客 607
上一篇: 10 c++ 泛型算法
下一篇: 12 c++ 动态内存
dabusidede
博客等级 码龄9年 84粉丝 208原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值