C++ size() 与 length() 核心笔记

C++ size与 length核心笔记

C++ size() 与 length() 核心笔记

一、核心结论

  1. length() :专属字符串 std::string,语义就是「字符串长度」;
  2. size() :所有 STL 容器通用 (vector/map/set/queue 等),语义是「容器元素个数」;
  3. string 中二者完全等价,返回值、用法无任何区别;
  4. 两者都是成员函数 ,必须加括号 (),不加直接编译报错。

二、分场景用法

1. 字符串 string

两个函数通用、完全一样,推荐按语义选择:

  • 求字符长度 → 用 length() 更直观;
  • 统一容器风格 → 用 size() 也没问题。
cpp 复制代码
#include <string>
using namespace std;

string s = "hello";
s.length();  // ✅ 5(推荐,语义明确)
s.size();    // ✅ 5(完全等价)

2. STL 容器(vector/map/set 等)

只能用 size(),length() 直接报错 (刷题最常用,比如路径 path):

cpp 复制代码
#include <vector>
using namespace std;

vector<int> path = {1,2,3};
path.size();    // ✅ 3(唯一正确写法)
// path.length(); ❌ 编译错误!容器无此函数

3. 原生数组(int a[] 等)

既不能用 .size(),也不能用 .length():

cpp 复制代码
int a[10];
// a.size();   ❌ 错误
// a.length(); ❌ 错误

// 正确写法:计算数组长度
int len = sizeof(a) / sizeof(a[0]); // ✅ 10

三、高频错误纠正

错误代码

cpp 复制代码
for (int i = 0; i < path.size; i++)  // ❌ 两处错误
  1. vector 只能用 size(),不能用 length();
  2. 成员函数必须加括号,size 是函数名不是变量。

正确代码

cpp 复制代码
for (int i = 0; i < path.size(); i++)  // ✅ 标准写法

四、极简记忆

字符串 length/size 通用;
容器 vector 只认 size;
原生数组啥点都没有。

相关推荐
lisw053 分钟前
分岔论揭示演化突变密码
开发语言·算法·数学建模
hunteritself4 分钟前
AI 挖出 PHP「致命漏洞」!欧洲政府连夜关站,日本首相紧急喊话
开发语言·人工智能·php
努力实干19 分钟前
Qt/C++ 模块化设计与工程组织
开发语言·c++·qt
Rabitebla24 分钟前
【Linux底层原理】 工具篇(二):Vim 编辑器基础操作与简单配置
linux·c++·编辑器·vim
阿里嘎多学长26 分钟前
2026-10-23 GitHub 热点项目精选
开发语言·程序员·github·代码托管
Lhan.zzZ43 分钟前
Qt:动态库模块框架设计
开发语言·c++·qt
quantdash_cc1 小时前
如何从多只股票的历史行情构建收益率矩阵?Python 与 QuantDash 实战教程
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
wuminyu1 小时前
JVM规范学习总结-JVM规范基本概念
java·linux·c语言·jvm·c++
Demon--hx2 小时前
jsoncpp 核心概念梳理:命名空间、Value 容器与格式化输出
c++
不是万能的豆学长5 小时前
filetidy 文件整理助手:一键归类 + 规范重命名(Python 零依赖单文件工具)
大数据·开发语言·python·技术美术