Chapter 3 字符串、向量和数组

【软考向】Chapter 3 数据结构 本文介绍了数据结构中的线性结构、数组、矩阵、广义表、树、图等基本概念及其存储与操作方式,以及查找和排序算法。 阅读详情

Chapter 3 字符串、向量和数组

3.1 命名空间的 using 声明

我们在使用库函数,譬如 的时候,我们需要显示地将命名空间 std 添加上去。会显得比较繁琐。现在,我们将介绍一种更安全的方式,,通过使用 using 声明,如下:

#include <iostream>
using namespace std;		// 使用命名空间 std

// 也可以使用独立的 using 声明
// using namespace std::cin;
// using namespace std::cout;

int main()
{
    int i, j;
    
    // i 的输入输出函数不需要添加 std
    cin >> i >> j;
    cout << i << " " << j << endl;
    return 0;
}
头文件不应包含 using 声明

位于头文件的代码,一般不应该使用 using 声明。这是因为头文件的内容会拷贝到所有引用它的文件中去,如果头文件里有某个 using 声明,那么每个使用了该头文件的文件就都会有这个声明。

3.2 标准库类型 string

标准库类型 string 表示可变长的字符序列,使用 string 类型必须首先包含 string 头文件,string 定义在命名空间 std 中。

3.2.1 定义和初始化 string 对象

string s1;			// 默认初始化,s1 是一个空字符串
string s2 = s1;		// s2 是 s1 的副本  		也相当于 string s2(s1);
string s3 = "cpp";	// s3 是该字符串字面值的副本	也相当于 string s3("cpp"); 
string s4(5, 'a');	// s4 = "aaaaa"
直接初始化和拷贝初始化

如果使用等号(=)进行初始化,则进行的是拷贝初始化,编译器把等号右侧的初始值拷贝到新创建的对象中去。与之相反,如果不使用等号,则执行的是直接初始化。

3.2.2 string 对象上的操作

操作含义
os << s将s写到输出流 os 中,返回 os
is >> s从 is 中读取字符串赋给s,字符串以空白分隔
getline(is, s)从 is 中读取一行赋给 s,返回 is
s.empty()s 为空返回 true,否则返回 false
s.size()返回 s 中字符的个数
s[n]返回 s 中第n个字符的引用,从0开始计数
s1 + s2返回 s1 和 s2 连接后的结果
s1 = s2用 s2 的副本代替 s1 中原来的字符
s1 == s2如果 s1 和 s2 所含字符完全一样,则相等,区分大小写
<, <=, >, >=字典序比较
读写 string 对象

在读取操作时, string 对象会自动忽略开头的空白(即空格符、换行符、制表符),并从第一个真正的字符开始读起,直到遇见下一处空白为止。

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string s;
    cin >> s;		// 将 string 对象读入 s,遇到空白停止
    cout << s << endl;
    return 0;
}

同样,string 对象也可以连读:

cin >> s1 >> s2;
cout << s2 << s2 << endl;
读取未知数量的 string 对象
int main()
{
    string s;
    while(cin >> s)
    {
        cout << s << endl;
    }
    return 0;
}
使用 getline 读取一整行

有时我们希望能在最终得到的字符串中保留输入时的空白字符,这时应该用 getline 函数与代替原来的 >> 运算符。

int main()
{
    string s;
    while(getline(cin, s))
    {
        cout << s << endl;
    }
    return 0;
}
string 的 empty 和 size 操作

empty 函数根据 string 对象是否为空返回一个对应的布尔值。

size 函数返回 string 对象的长度。

string::size_type 类型

size 函数返回的是一个 string::size_type 类型的值,其是一个无符号类型的值,而且足够存放下任何 string 对象的大小。

比较 string 对象

string 对象的比较运算是区分大小写的:

  • 如果两个 string 对象的长度不同,而且较短 string 对象的每个字符都与较长 string 对象对应位置上的字符相同,那么较短 string 对象小于较长 string 对象。
  • 如果两个 string 对象在某些对应的位置不一致,则 string 对象比较的结果其实是两个 string 对象中第一对相异字符比较的结果。

如:

string s1 = "cppprimer";
string s2 = "cppprimer5";		// s1 < s2

string s3 = "cppprimar";		// s1 > s3
string s4 = "caa";				// s1 > s4
字面值和 string 对象相加

当把 string 对象和字符字面值及字符串字面值混在一条语句中使用时,必须确保每个加法运算符的两侧的运算对象至少有一个是 string:

string s1 = "a", s2 = "b";

string s3 = s1 + "bc";
string s4 = s1 + 'b' + "c";		// 正确,因为是先进行左边+加法,返回 string 对象,再进行右边加法
string s5 = 'b' + "c" + s1;		// 错误

3.2.3 处理 string 对象中的字符

我们经常需要单独处理 string 对象中的字符,比如检查一个 string 对象是否包含空白,或者把 string 对象中的字母改成小写,再或者查看某个特定的字符是否相等。在 ctype 头文件中定义了一组标准库函数处理这部分工作:

操作含义
isalnum©当 c 是字母或者数字时为真
isalpha©当 c 是字母时为真
iscntrl©当 c 是控制字符时为真
isdigit©当 c 是数字时为真
isgraph©当 c 不是空格但可打印时为真
islower©当 c 是小写字母时为真
isprint©当 c 是可打印字符时为真
ispunct©当 c 是标点符号时为真
isspace©当 c 是空白时为真
isupper©当 c 是大写字母时为真
isxdigit©当 c 是十六进制数字时为真
tolower©如果 c 是大写字母,输出对应的小写字母,否则原样输出 c
toupper©如果 c 是小写字母,输出对应的大写字母,否则原样输出 c
使用 for 语句处理 string 中的每个字符
string s = "hello, world";
for(auto c: s)
{
    if(islower(c))
    {
        ...;
    }
    if(isdigit(c))
    {
        ...;
    }
    cout << c << endl;
}

如果想要改变 string 对象中字符的值,必须把循环变量定义成引用类型。

for(auto &c: s){
    c = toupper(c);
}
cout << s << endl; 	// HELLO,WORLD

我们也可以通过 size 函数得到 string 对象的长度,以达到只处理前面一些字符,或者通过引用的方式只处理其中几个字符。

3.3 标准库类型 vector

标准库类型 vector 表示对象的集合,其中所有对象的类型都相同。因为 vector 容纳着其他对象,所以它也被称为容器(container)。

要想使用 vector,必须包含适当的头文件。

#include <vector>
using std::vector;

C++语言既有类模板(class template),也有函数模板,其中 vector 是一个类模板。模板本身不是类或函数,相反可以将模板看作为编译器生成类或函数编写的一份说明。编译器根据模板创建类或函数的过程称为实例化(instantiation)。

对于类模板来说,我们通过提供一些额外信息来指定模板到底实例化成什么样的类,以 vector 为例:

vector<int> ivec;				// 保存 int 类型的 vector 对象
vector<vector<string>> file;	// 保存 vector<int> 类型的 vector 对象

3.3.1 定义和初始化 vector 对象

以下以 int 为例:

vector<int> v1; 				// 空 
vector<int> v2(v1);
vector<int> v3 = v1;			// v2 v3 都是v1的副本
vector<int> v4(5, 1);			// v4 中包含了5个 int 型元素,其值都为1
vector<int> v5(10);				// v5 有10个 int 型对象,其值为默认初始值
vector<int> v6{1, 2, 3};		
vector<int> v7 = {1, 2, 3};		// v6、v7 包含了3个 int 型元素,其值分别为 1,2,3

3.3.2 向 vector 对象中添加元素

int val = 3;
vector<int> arr;
arr.push_back(val);		// 向arr尾部添加元素 val

3.3.3 其他 vector 操作

vector<int> arr;

arr.size();			// 返回元素个数
arr.empty();		// 返回是否为空
arr.push_back();	// 添加元素
arr.pop_back();		// 删除末尾元素
arr[i];				// 第i个位置上的引用
arr1 == arr2;		// 是否各个位置上对应元素都相同

3.4 迭代器介绍

除了使用下标运算符来访问 string 对象的字符或 vector 对象的元素,我们还可以使用迭代器来访问。

3.4.1 使用迭代器

我们使用这些类型的成员 begin 和 end 来使用迭代器。

vector<int> arr;
auto b = arr.begin();		// b 表示 arr 的第一个元素
auto e = arr.end();			// e 表示 arr 尾部元素的下一个位置
迭代器运算符
*iter;				// 返回迭代器 iter 所指元素的引用
iter->mem;			// 获取该元素的名为 mem 的成员
++iter;				// 指向容器的下一个元素
--iter;				// 指向容器的上一个元素
iter1 == iter2;		// 判断两个迭代器是否相等
begin 和 end 运算符

C++11新标准中引入了两个新函数,分别为 cbegin 和 cend,用于获得 const_iterator 类型的返回值,只可读不可写。

3.4.2 迭代器运算

iter + n;			// 仍是一个迭代器,与之前相比向前移动了 n 个位置
iter - n;			// ......向后移动了 n 个位置
iter += n;
iter -= n;
iter1 - iter2;		// 返回两者之间的距离

> >= < <=;			// 参与运算的迭代器必须指向同一个容器,谁的位置在前面,谁下

3.5 数组

3.5.1 定义和初始化内置数组

数组是一种复合类型。数组的声明形如 a[d],其中 a 是数组的名字,d 是数组的维度(必须是一个常量表达式)。

显式初始化数组元素

可以对数组的元素进行列表初始化,此时允许忽略数组的维度。

const unsigned sz = 3;
int a1[sz] = {0, 1, 2};
int a2[] = {0, 1, 2};
int a3[5] = {0, 1, 2}; 			// == {0, 1, 2, 0, 0}
string a4[3] = {"hi", "bye"};	// == {"hi", "bye", ""}
int a5[2] = {0, 1, 2};			// 报错
字符数组

字符数组有一种额外的初始化形式,我们可以用字符串字面值对此类数组初始化,当使用这种方式时,一定要注意字符串字面值的结尾处还有一个空字符,这个空字符也会想字符串的其他字符一样被拷贝到字符数组中去:

char a1[] = {'C', '+', '+'};		// 列表初始化,没有空字符
char a2[] = {'C', '+', '+', '\0'};	// 列表初始化,含有显式的空字符
char a3[] = "C++";					// 自动添加表示字符串结束的空字符
const char a4[6] = "Daniel";		// 错误:没有空间可存放空字符
不允许拷贝和赋值

不能将数组的内容拷贝给其他数组作为其初始值,也不能用数组为其他数组赋值。

int a[] = {0, 1, 2};
int a2[] = a;				// 错误
a2 = a;						// 错误
理解复杂的数组声明
int *ptrs[10];				// ptrs 是含有是个整形指针的数组
int &refs[10];				// 错误,不存在引用的数组
int (*Parray)[10] = &arr;	// Parray 指向一个含有 10 个整数的数组
int (&arrRef)[10] = arr;	// arrRef 引用一个含有 10 个整数的数组

3.5.2 访问数组元素

在使用数组下标的时候,通常将其定义为 size_t 类型,在 cstddef 头文件中定义了 size_t 类型。

3.5.3 指针和数组

我们可以使用指针来访问数组元素

char arr[] = {'a', 'b', 'c'};

char *p1 = &arr[0];				// p1 指向arr的第一个元素
char *p2 = arr;					// p1 = p2

当使用数组作为一个 auto 变量的初始值时,推断得到的类型是指针而不是数组:

int ia[] = {0, 1, 2, 3};
auto ia2(ia);			// ia2 是一个整形指针

当使用 decltype 关键字时,上述转换不会发生:

decltype(ia) ia3 = {0, 1, 2, 3};		// ia3 是一个含有四个元素的数组
指针也是迭代器
int arr[] = {0, 1, 2, 3};
int *p = arr;					// p 指向 arr 的第一个元素
++p;							// p 指向 arr[1]
标准库函数 begin 和 end

与之前容器中的两个同名成员类似,C++11标准引入了两个名为 begin 和 end 的函数,让指针的使用更简单、高效。

#include <iterator>

int[] arr = {0, 1, 2, 3};
int *b = begin(arr);
int *e = end(arr);
指针运算

给指针加上一个整数,得到的新指针仍需指向同一数组的其他元素,或者也指向同一数组的尾元素的下一位置。

int *p1 = arr;
int *p2 = p1 + 4;			// 指向 arr[4]

两个指针相减的结果类型是一种名为 ptrdiff_t 的标准库类型,定义在 cstddef 头文件中。

3.6 多维数组

严格来说,C++语言中没有多维数组,通常所说的多维数组其实是数组的数组。

int a[3][4];			// 大小为3的数组,每个元素是含有4个整数的数组
多维数组的初始化
int a[3][4] = {
    {0, 1, 2, 3},
    {4, 5, 6, 7},
    {8, 9, 10, 11},
};

int a[3][4] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};

// 只初始化每一行的第一个元素
int a[3][4] = {{0}, {4}, {8}}

// 只初始化第一行
int a[3][4] = {0, 3, 6, 9};
SpringBoot与锐浪报表服务器深度整合实战指南 本文详细介绍了SpringBoot与锐浪报表服务器的深度整合实战指南,包括环境准备、Windows/Linux系统配置、核心功能实现代码解析及常见问题解决方案。通过具体案例和代码示例,帮助开发者高效完成报表系统的集成与部署,提升企业级应用的报表处理能力。 阅读详情

相关推荐

【软件使用】Calibre部分提参的实战技巧与常见问题解析

本文详细解析了Calibre部分提参(Partial PEX)的实战技巧,重点介绍了如何利用HCELL与XCELL文件高效排除已知模块,实现精准的寄生参数提取,从而快速定位后仿真中的时序与信号完整性问题。文章涵盖了从图形界面到命令行的完整操作流程,并提供了常见问题(如时钟失真、模块“消失”)的深度Debug指南与最佳实践,助力芯片设计工程师提升验证效率。

yhn456789的博客 1029

Chapter3 字符串、向量和数组

字符串 字面值与string对象相加 1. 字符串字面值与string是不同的类型 2. 字面值与string类型对象相加时,必须确保每个加法运算符(+)的两侧至少有一个string对象 string str1 = "hello"; string str2 = str1 + "world"; //合法 string str3 = "hello" + "world

River_Lethe的博客 311

自制JS某课脚本

根据实际需求自制网页讯网刷题脚本,绕过人脸,弹窗,答题,实现自动化运行

2301_81243054的博客 3459

Tips for C++ Primer Chapter 3 字符串、向量和数组

第3章 字符串、向量和数组 命名空间 using std::cin; using namespace std; string string s4(3, 'c'); //s4的值是"ccc" 使用getline读取一整行 string line; getline(cin, line); 若成功读取一行,getline函数返回true(读到空行也返回true,因...

205

ADS中HB仿真自动优化报错问题解决心得

在ADS HB仿真中自动优化出现报错被强制暂停,解决方法如下

yyyyyyyyyyjy的博客 6541

使用ESP32设计嵌入式蓝牙游戏手柄

通过使用ESP32开发板和相关的库,我们可以设计和实现嵌入式蓝牙游戏手柄。连接到该设备后,您可以使用控制器模块的按钮和摇杆等元件来模拟游戏手柄的输入。根据您使用的具体模块和引脚分配,连接按钮和摇杆等控制元件到ESP32的GPIO引脚。ESP32是一款功能强大的微控制器,集成了Wi-Fi和蓝牙功能,非常适合用于开发物联网和嵌入式应用。请注意,本文仅提供了一个基于ESP32的嵌入式蓝牙游戏手柄设计示例,具体实现可能因硬件和需求而有所不同。确保开发板正确连接到计算机,并选择正确的开发板和端口。

CodeMaven的博客 1642

primer c++ 5 chapter2变量和类型,3字符串向量数组

c++

surfaceyan的博客 878

【精细解读】xapp585(多通道LVDS接口ADC)

xapp585的参考设计有Verilog和VHDL两种源码。

FPGA艺术家的博客 532

Chapter3:字符串、向量和数组

C++11新特性:范围for(range for) 1 for (declaration: expression) 2 statement vector和数组都是对象的集合,而引用不是对象。 vector对象可以高效地增长,在定义vector对象的时候设定其大小也就没什么必要了,事实上如果这么做性能可能更差。 C++11新特性:cbegin(...

weixin_30507481的博客 107

OPTEE v4.4.0 qemu_v8环境搭建(支持Hafnium)

一、前提条件 二、拉取代码 三、下载工具链 四、修改代码 五、编译 六、运行

AI-安全-功耗 889

8.19华为OD机试真题 新系统 - 基站低能耗时段统计 (Java/Py/C/C++/Js/Go)

8.19华为OD机试真题 新系统 - 基站低能耗时段统计 (Java/Py/C/C++/Js/Go)

算法大师! 1152

C++ primer 5th .Chapter 3 字符串、向量和数组 读书笔记

C++ primer 5th .Chapter 3 读书笔记 3.1 命名空间的using声明 3.2 标准库类型string 3.3 标准库类型vector 3.4 迭代器介绍 3.5 数组 3.6 多维数组 3.1 命名空间的using声明 Tips: 头文件不应该包含using声明 因为头文件的内容会被拷贝到所有引用它的文件中去 ,对于某些程序来说可能会造成名字冲突。 3.2 ...

AlexanderGan的博客 272

不使用工具箱,通过MATLAB纯编程实现lstm网络的训练过程

长短期记忆网络(LSTM,Long Short-Term Memory)是一种时间循环神经网络,是为了解决一般的RNN(循环神经网络)存在的长期依赖问题而专门设计出来的,所有的RNN都具有一种重复神经网络模块的链式形式。在标准RNN中,这个重复的结构模块只有一个非常简单的结构,例如一个tanh层。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 1013

C++ primer 5 笔记3 chapter 3 字符串, 向量和数组

chapter 3 字符串, 向量和数组命名空间的using 声明 头文件中请不要包含using 声明, 因为, 头文件中的内容会被拷贝到引用它的文件中去。 标准库类型string 如果一个表达式中已经有了size()函数, 就不要再使用int了 标准库类型vector 范围 for 语句体内不应该改变其所遍历的序列的大小 注意避免下标越界 ( 缓冲区溢出问题) 迭代器介绍 cbegin, cend

zhyh1435589631的专栏 432

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【C++】《C++ Primer 5th》笔记-Chapter3-字符串、向量和数组

笔记: 一、命名空间的using声明 1、string表示可变长的字符序列,vector存放的是某种给定类型对象的可变长序列。 2、using声明具有如下的形式: using namespace::name; 3、位于头文件的代码一般来说不应该试用using声明。这是因为头文件的内容会拷贝到所有引用它的文件中去。对于某些程序来说,由于不经意间包含了一些名字,反而可能产生始料未及的名字冲突。 二、标准库类型string 1、下面是初始化string对象最常用的一些方式: string s1; ...

江湖人称菠萝包 424

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

R语言入门 Chapter01 | 向量

不登高山,不知天之高也;不临深溪,不知地之厚也。 ——荀子 这篇文章讲述的是R语言中关于向量相关知识。希望这篇R语言文章对您有所帮助!如果您有想学习的知识或建议,可以给作者留言~ Chapter01 | 向量一、向量的概念及简单介绍1、概念2、创建向量和查看向量3、向量运算的简单介绍(最后有补充)二、索引及元素的增删改查1、索引1.1、整数索引1.2、逻辑向量索引1.3、名称索引2、元素的增删...

不温卜火 5280

C++ Primer笔记3---chapter3 字符串&向量&数组

1.头文件不应该包含using声明 2.拷贝初始化和直接初始化:对于有连续多少个重复字符的用直接初始化 string s1="hello"; //拷贝初始化 string s2("hello"); //直接初始化 string s3(10,'c'); //直接初始化 3.string.size()返回的时string::size_type类型的值,可以用auto或者decltype获得其类型(事实上,返回的是一个unsigned int,注意避免和int混用造成由于越界导..

badmer的博客 592

Chapter 3. Strings, Vectors and Arrays -C++ Primer 5 notes

Chapter 3. Strings, Vectors and Arrays What does built-in types include? chapter 2 array maybe more? What is the characteristic of built-in types? These types represent facilities present in most computer hardware, such as numbers or characters. What i

Nekoraa的博客 1977

SUMMARY OF CHAPTER 3-4

CHAPTER 3 SECTION 3.1-3.5         1. the standard library defines a number of higher level abstract data types. They are abstract because when we use them we don't need to care about how the types a

剑侠月影 725

读书笔记:C++ primer 5th edition--chapter 3.字符串,向量,数组

part1.String 1.头文件不要包含using,因为头文件内容会被拷贝到所有引用它的文件中去。容易导致冲突。 2.string s4(10, ‘c’) => cccccccccc 初始化10个c的string 3.函数:s.empty()     s.size() 4.string对象会自动忽略开头的空白(空格符,换行符,制表符) 5.使用c++版本的C标准库(cstdio ra

Joker's Time 377

C++基础 Chapter 3

一、标准库类型string 1. 定义和初始化string对象 方式 说明 string s1 默认初始化,s1是一个空串 string s2(s1) 拷贝初始化,s2是s1的副本 string s2 = s1 拷贝初始化,同上 string s3("value") 直接初始化 string s3 = "value" 拷贝初始化 string s4(n, 'c') 直接初始化,把s4初始化为由连续n个字符c组成的串 2.string对象上的操作 (1)读写 在执行读

qq_44789094的博客 585

Chapter 2. MATLAB数据及其运算

课后习题解答 2.3   写出完成下列操作的命令 (1)将矩阵 A 第2~5行中第1,2,3列元素赋给矩阵B。 (2)删除矩阵 A 的第7号元素。 (3)将矩阵 A 的每一个元素值加30。 (4)求矩阵 A 的大小和维数。 (5)将向量 t 的0元素用机器零来替代。 (6)将含有12个元素的向量 x 转换成3*4矩阵。 (7)求一个字符串的ASCII码。 (8)求一个AS

海上机械师 6573

R语言实战 chapter2

本章内容 探索R中的数据结构(向量、因子、矩阵、数据框、列表),2.1-2.2 输入数据 导入数据(SQL、DOS、SAS/SPSS……),2.3 标注数据,2.4 2.1 数据集的概念 数据集: 一个矩形数组,有行列,分别表示观测observation/变量variable (或记录record/字段field、示例example/属性attribute) R处

xuyangchen0806的博客 499

matlab 二维数组里存有坐标 绘图,Matlab--从入门到精通(chapter2 matlab 基础知识)...

Chapter2 Matlab 基础知识1.基本数学运算符号 注:矩阵的右除是一般意义的除法,但是左除具有对称意义,即A./B=B.\A2. 命令行中的常用标点 3.常见的操作命令 4.输出数据显示格式命令注:在Matlab中,默认输出采用双精度的格式,默认采用format short g方式来进行显示 5.数值、变量和表达式5-1.变量的命名规则变量名对大小写敏感变量名必须以字母开头,后面可以跟...

weixin_31243809的博客 1925

CHAPTER 12 Special Methods for Sequences

通过这一版Vector支持任意维度的向量;通过定制化的特殊方法(如__repr____str____eq__等),丰富了类的功能;提供了高效的计算方式(如基于math.hypot的模长计算)。这种设计方式非常贴合 Python 的数据类型设计哲学(例如list或tuple),同时通过模块化和类方法便捷地实现了序列化操作,值得在工程中深刻实践和学习。在面向对象编程的上下文中,协议是一种非正式接口,它通过文档定义了对象必须遵守的规则,但在代码中这种规则是非强制的(不像 Java 的接口。

jsdoulaoula的博客 776

R语言入门 Chapter03 | 列表

不登高山,不知天之高也;不临深溪,不知地之厚也。 ——荀子 这篇文章讲述的是R语言中关于列表的相关知识。希望这篇R语言文章对您有所帮助!如果您有想学习的知识或建议,可以给作者留言~ Chapter03 | 列表 同时推荐前面作者另外三个专栏的文章: 快速入门之Tableau系列:快速入门之Tableau 快速入门之爬虫系列:快速入门之爬虫 COVID-19分析专栏:COVID-19分...

不温卜火 5108

R语言实战(第2版)—— Chapter 02创建数据集

R拥有许多用于存储数据的对象类型,包括标量、向量、矩阵、数组、数据框和列表 表2-1提供了一个假想的病例数据集 2.21 向量 # 创建向量 a <- c(1, 2, 5, 3, 6, -2, 4) b <- c("one", "two", "three") c <- c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE) # 元素...

weixin_41768164的博客 657
上一篇: Chapter 2 变量和基本类型
下一篇: 设计模式-命令模式
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值