【C++笔记】字符串、向量和数组

本文详细介绍了C++中的字符串、向量和数组。字符串使用string类型,支持多种初始化和赋值方式。vector是动态大小的元素集合,支持列表初始化和动态添加元素。迭代器作为容器通用的操作手段,适用于除数组外的标准库容器。数组包括一维和多维,C++11提供了begin和end函数处理数组。文章还讨论了C风格字符串的使用及与其他容器的交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

string(C++Primer 5th)

string & vector

  string表示可变长的字符序列,vector存放的是某种给定类型对象的可变长序列。

using声明

  头文件不应包含using声明,否则头文件的内容会拷贝到所有引用它的文件中去。

string初始化赋值

  使用等号=初始化的是拷贝初始化,不使用等号的称为直接初始化。
size()函数的返回值是类型size_type,无符号整数型。如果n是负值的int,则s.size()

string s(10,'c');               // s的内容是cccccccccc

cin>>word;                      // 遇到空格停止
getline(cin,line);              // 读入一整行,直到换行符

auto len = line.size();         // len的类型是string::size_type

string s1 = s + "," + "world";  // 加法需保证+两次的运算对象至少有一个是string 
string s2 = "hello" + "," + s1; // 错误:两个运算对象都不是string
使用C++版本的C标准库头文件

  一般来说,C++程序应该使用名为cname的头文件而不使用name.h的形式。

基于范围的for语句
// 统计string对象中标点符号的个数
string s("Hello World!!!");     
decltype(s.size())  punct_cnt=0; // 用于统计个数,无符号整型确保下标不小于0 
for(auto c:s)
    if(ispunct(c))  punct_cnt++; 
// 使用范围for语句改变字符串中的字符
string s("Hello World!!!");
for(auto &c:s)
    c = toupper(c);             // 将string对象转换成大写
cout << s << endl;




vector

vector概念

  标准库类型vector表示对象的集合,其中所有对象的类型都相同,通常也称容器。

  vector是模板而非类型,由vector生成的类型必须包含vector中元素的类型,如vector<int>、vector<vector<int>>

  由于引用不是对象,所以不存在包含引用的vector。

列表初始化 OR 元素数量
vector<int> v1(10);         // v1有10个元素,每个的值都是0
vector<int> v2{
  10};         // v2有1个元素,该元素的值是10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值