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类和字符串字面量相关推荐

  1. c语言相邻字符串字面量,C语言预处理#运算符的细节

    #运算符将宏的一个参数转换为字符串字面量,它仅允许出现在带参数的宏的替换列表中. 例如:使用PRINT_INT宏作为一个快捷的方法来整形变量或者表达式的值,#运算符可以使PRINT_INT为每个输出的 ...

  2. c 将数字数组转成字符串_C+|用指针指向字符串字面量、字符数组及字符指针数组...

    指针可以指向一个字符串字面量,可以指向一个字符数组,可以指向一块动态分配的内存单元: char *s1, *s2, *s3 = "abcde"; char ch[] = " ...

  3. python字符串字面量有哪四种定义方式_Python进阶16_字符串基础操作

    前面介绍了一下比较晦涩而且深入的字符文本的处理方法,接下来几节将带来一些常规的操作.比较容易入手. 字符串处理 字符串字面量 字符字面量的通过使用:以单引号开始和结束,但是如何处理的是字符串内使用单引 ...

  4. 单引号和双引号的区别(字符串字面量 字符常量) | C语言

    在 C 语言中,单引号与双引号是有很大区别的. 字符串字面量:使用一对双引号括起来的字符序列. 在 C 语言中没有专门的字符串类型,因此双引号内的字符串会被存储到一个数组中,这个字符串代表指向这个数组 ...

  5. 深度讲解TS:这样学TS,迟早进大厂【15】:字符串字面量类型

    博主是一个专注于前端开发的程序猿~ 曾经主做于vue,react,小程序,uniapp,RN等各大框架~ 现在主攻web安全,数据加密,项目架构,性能优化~ 技术之路,任道重远.未来属于努力奋斗的我们 ...

  6. python字符串字面量有哪四种定义方式_Python学习笔记(四)字符串型

    字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 在最新的Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言 ...

  7. c语言里字符串和字符串字面量,string literals(字符串字面量)

    构造一个指定字符数组类型的未命名对象,用于需要在源代码中嵌入字符串时使用. 句法 " s-char-sequence "(1)u8 " s-char-sequence & ...

  8. python字符串字面量有哪四种定义方式_python中字符串连接的四种方式

    原博文 2018-12-05 14:28 − 以下实例展示了join()的使用方法 #!/usr/bin/python str = "-"; seq = ("a" ...

  9. rust多行字符串字面量

    let string = "line oneline two"; 相当于line one\n line two,注意第二行的前导空格还在. let string = "o ...

最新文章

  1. 推荐:一款Java开源的Springboot 即时通讯 IM 聊天系统
  2. ORA-01078与LRM-00109报错解决
  3. 重载和const形参
  4. Windows部署服务WDS实例
  5. SDWebImage常用方法及原理
  6. Scrapy爬取二手房信息
  7. 尼尔 android,尼尔转生wiki官网版
  8. C#WinForm中在dataGridView中添加中文表头
  9. Linux常见面试题,一网打尽!
  10. 我们不一样!告诉你百度是如何做智能流量异常检测的
  11. (附源码)ssm无人机数据管理系统 毕业设计 111022
  12. 石墨笔记,熊掌记和 Effie 哪个更适合采编?
  13. 怎么关闭Windows安全启动?
  14. “amp”是什么意思
  15. CCPC-Wannafly Summer Camp 2019 全记录
  16. 《Java SE实战指南》01-09:常见问题及其解决方案
  17. 抛弃WinSCPnbsp;教你使用CuteFTP传输文件
  18. cutterman的安装
  19. 写一个递归方法,输入一个非负整数,返回组成它的数字之和.
  20. sonarqube7.7的下载与安装

热门文章

  1. 问题:三元向量的比较
  2. ajax前台multipartfile,在SpringBoot中使用Ajax方式MultipartFile上传失败
  3. js中var、let、const区别
  4. JS中undefined和null的区别,以及出现原因
  5. 【代码笔记】Web-HTML-颜色
  6. CSS字体设置的一些技巧(行高,加粗,强制换行等)
  7. openocd安装与调试
  8. 洛谷 P3455 [POI2007]ZAP-Queries (莫比乌斯反演)
  9. C#调用Power Shell 管理Office365 执行脚本时遇到的问题
  10. Unicode与JavaScript详解 [很好的文章转]