【C++grammar】vector类和字符串字面量
C++的vector类
用数组存放数据时,容量大小不可变,vector对象容量可自动增大。
vector的操作:
调用push_back函数时,vector对象的容量可能会增大。
观察下列操作对vector的影响:
#include <vector>
#include <iostream>
#include <string>#include "Helper.h"
int main()
{//用c++11的列表初始化,创建vector对象words1std::cout<< "用c++11的列表初始化,创建vector对象words1"<< std::endl;std::vector<std::string> words1{"Hello","World!","Welcome","To","C!"};PRINT(words1);std::cout << std::endl;//删除words1最后一个元素std::cout << "删除words1最后一个元素" << std::endl;words1.erase(words1.end()-1);PRINT(words1);//在words1尾部追加元素std::cout << "在words1尾部追加元素" << std::endl;words1.push_back("C++!");PRINT(words1);std::cout << std::endl;//用迭代器拷贝words1的内容以创建words2std::cout << "1、用迭代器拷贝words1的内容以创建words2" << std::endl;std::vector<std::string> words2(words1.begin()+2, words1.end());PRINT(words2);std::cout << std::endl;//在words中插入元素std::cout << "2、在words中插入元素" << std::endl;words2.insert(words2.begin(),"Hello!");PRINT(words2);std::cout << std::endl;//用拷贝构造创建words3std::cout << "3、用拷贝构造创建words3" << std::endl;std::vector<std::string> words3(words2);PRINT(words3);std::cout << std::endl;//用[]修改words的元素std::cout << "4、用[]修改words的元素" << std::endl;words3[3] = "C Plus Plus";PRINT(words3);std::cout << std::endl;//创建words4,初始化为多个相同的字串std::cout << "5、创建words4,初始化为多个相同的字串" << std::endl;std::vector<std::string> words4(4, "C++!");PRINT(words4);std::cout << std::endl;//words3与words4交换std::cout << "6、words3与words4交换" << std::endl;words3.swap(words4);PRINT(words3);PRINT(words4);std::cout << std::endl;return 0;
}
字符串字面量
C++11原始字符串字面量
语法: R “delimiter( raw_characters )delimiter”
“Raw String literals”在程序中写成什么样子,输出之后就是什么样子。我们不需要为“Raw String literals”中的换行、双引号等特殊字符进行转义。
#include <vector>#include <iostream>
const char* s1 = R"(Hello
World)";// s1效果与下面的s2和s3相同const char* s2 = "Hello\nWorld";const char* s3 = R"NoUse(Hello
World)NoUse";int main() {std::cout << s1 << std::endl;std::cout <<std::endl;std::cout << s2 << std::endl;std::cout << std::endl;std::cout << s3 << std::endl;}
C++14的字符串字面量
C++14将运算符 ""s 进行了重载,赋予了它新的含义,使得用这种运算符括起来的字符串字面量,自动变成了一个 std::string 类型的对象。
auto hello = "Hello!"s; // hello is of std::string type
auto hello = std::string{"Hello!"}; // equals to the above
auto hello = "Hello!"; // hello is of const char* type
已知’\0’在字符串里面代表结束符号
#include <string>
#include <iostream>
int main() {using namespace std::string_literals;std::string s1 = "abc\0\0def";std::string s2 = "abc\0\0def"s;std::cout << "s1: " << s1.size() << " \"" << s1 << "\"\n";std::cout << "s2: " << s2.size() << " \"" << s2 << "\"\n";
}
【C++grammar】vector类和字符串字面量相关推荐
- c语言相邻字符串字面量,C语言预处理#运算符的细节
#运算符将宏的一个参数转换为字符串字面量,它仅允许出现在带参数的宏的替换列表中. 例如:使用PRINT_INT宏作为一个快捷的方法来整形变量或者表达式的值,#运算符可以使PRINT_INT为每个输出的 ...
- c 将数字数组转成字符串_C+|用指针指向字符串字面量、字符数组及字符指针数组...
指针可以指向一个字符串字面量,可以指向一个字符数组,可以指向一块动态分配的内存单元: char *s1, *s2, *s3 = "abcde"; char ch[] = " ...
- python字符串字面量有哪四种定义方式_Python进阶16_字符串基础操作
前面介绍了一下比较晦涩而且深入的字符文本的处理方法,接下来几节将带来一些常规的操作.比较容易入手. 字符串处理 字符串字面量 字符字面量的通过使用:以单引号开始和结束,但是如何处理的是字符串内使用单引 ...
- 单引号和双引号的区别(字符串字面量 字符常量) | C语言
在 C 语言中,单引号与双引号是有很大区别的. 字符串字面量:使用一对双引号括起来的字符序列. 在 C 语言中没有专门的字符串类型,因此双引号内的字符串会被存储到一个数组中,这个字符串代表指向这个数组 ...
- 深度讲解TS:这样学TS,迟早进大厂【15】:字符串字面量类型
博主是一个专注于前端开发的程序猿~ 曾经主做于vue,react,小程序,uniapp,RN等各大框架~ 现在主攻web安全,数据加密,项目架构,性能优化~ 技术之路,任道重远.未来属于努力奋斗的我们 ...
- python字符串字面量有哪四种定义方式_Python学习笔记(四)字符串型
字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 在最新的Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言 ...
- c语言里字符串和字符串字面量,string literals(字符串字面量)
构造一个指定字符数组类型的未命名对象,用于需要在源代码中嵌入字符串时使用. 句法 " s-char-sequence "(1)u8 " s-char-sequence & ...
- python字符串字面量有哪四种定义方式_python中字符串连接的四种方式
原博文 2018-12-05 14:28 − 以下实例展示了join()的使用方法 #!/usr/bin/python str = "-"; seq = ("a" ...
- rust多行字符串字面量
let string = "line oneline two"; 相当于line one\n line two,注意第二行的前导空格还在. let string = "o ...
最新文章
- 推荐:一款Java开源的Springboot 即时通讯 IM 聊天系统
- ORA-01078与LRM-00109报错解决
- 重载和const形参
- Windows部署服务WDS实例
- SDWebImage常用方法及原理
- Scrapy爬取二手房信息
- 尼尔 android,尼尔转生wiki官网版
- C#WinForm中在dataGridView中添加中文表头
- Linux常见面试题,一网打尽!
- 我们不一样!告诉你百度是如何做智能流量异常检测的
- (附源码)ssm无人机数据管理系统 毕业设计 111022
- 石墨笔记,熊掌记和 Effie 哪个更适合采编?
- 怎么关闭Windows安全启动?
- “amp”是什么意思
- CCPC-Wannafly Summer Camp 2019 全记录
- 《Java SE实战指南》01-09:常见问题及其解决方案
- 抛弃WinSCPnbsp;教你使用CuteFTP传输文件
- cutterman的安装
- 写一个递归方法,输入一个非负整数,返回组成它的数字之和.
- sonarqube7.7的下载与安装
热门文章
- 问题:三元向量的比较
- ajax前台multipartfile,在SpringBoot中使用Ajax方式MultipartFile上传失败
- js中var、let、const区别
- JS中undefined和null的区别,以及出现原因
- 【代码笔记】Web-HTML-颜色
- CSS字体设置的一些技巧(行高,加粗,强制换行等)
- openocd安装与调试
- 洛谷 P3455 [POI2007]ZAP-Queries (莫比乌斯反演)
- C#调用Power Shell 管理Office365 执行脚本时遇到的问题
- Unicode与JavaScript详解 [很好的文章转]