tools.level-cpp-query.results.countLabel
tools.level-cpp-query.labels.levelPrefix 1tools.level-cpp-query.labels.priorityHint
::tools.level-cpp-query.categories.scopetools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
作用域解析
tools.level-cpp-query.labels.description
限定命名空间、类或枚举的成员,如 std::cout、Foo::bar。
tools.level-cpp-query.labels.example
std::vector<int>tools.level-cpp-query.labels.levelPrefix 2tools.level-cpp-query.labels.priorityHint
a++tools.level-cpp-query.categories.postfixtools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
后置自增
tools.level-cpp-query.labels.description
返回当前值后将变量加 1。
tools.level-cpp-query.labels.example
i++a--tools.level-cpp-query.categories.postfixtools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
后置自减
tools.level-cpp-query.labels.description
返回当前值后将变量减 1。
tools.level-cpp-query.labels.example
i--type()tools.level-cpp-query.categories.postfixtools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
函数式类型转换
tools.level-cpp-query.labels.description
通过类似构造函数调用的形式进行类型转换。
tools.level-cpp-query.labels.example
int(3.14)type{}tools.level-cpp-query.categories.postfixtools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
列表初始化类型转换
tools.level-cpp-query.labels.description
C++11 起使用花括号进行类型转换或临时对象初始化。
tools.level-cpp-query.labels.example
double{1}a()tools.level-cpp-query.categories.postfixtools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
函数调用
tools.level-cpp-query.labels.description
调用函数、函数对象或仿函数。
tools.level-cpp-query.labels.example
std::printf("hi")a[]tools.level-cpp-query.categories.postfixtools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
下标访问
tools.level-cpp-query.labels.description
访问数组、容器或重载了 operator[] 的对象的元素。
tools.level-cpp-query.labels.example
arr[0].tools.level-cpp-query.categories.postfixtools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
成员访问
tools.level-cpp-query.labels.description
访问对象的非指针成员(字段、方法)。
tools.level-cpp-query.labels.example
obj.name->tools.level-cpp-query.categories.postfixtools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
指针成员访问
tools.level-cpp-query.labels.description
通过指针访问对象的成员,等价于 (*p).x。
tools.level-cpp-query.labels.example
p->nexttools.level-cpp-query.labels.levelPrefix 3tools.level-cpp-query.labels.priorityHint
++atools.level-cpp-query.categories.unarytools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
前置自增
tools.level-cpp-query.labels.description
先将变量加 1,再返回新值。
tools.level-cpp-query.labels.example
++i--atools.level-cpp-query.categories.unarytools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
前置自减
tools.level-cpp-query.labels.description
先将变量减 1,再返回新值。
tools.level-cpp-query.labels.example
--i+atools.level-cpp-query.categories.unarytools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
一元正号
tools.level-cpp-query.labels.description
返回操作数的值,触发整型提升。
tools.level-cpp-query.labels.example
+x-atools.level-cpp-query.categories.unarytools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
一元负号
tools.level-cpp-query.labels.description
返回操作数的相反数。
tools.level-cpp-query.labels.example
-x!tools.level-cpp-query.categories.unarytools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
逻辑非
tools.level-cpp-query.labels.description
对布尔值取反,0/false 变为 true,否则为 false。
tools.level-cpp-query.labels.example
!ready~tools.level-cpp-query.categories.unarytools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
按位取反
tools.level-cpp-query.labels.description
对整数按位取反,每一位 0 变 1、1 变 0。
tools.level-cpp-query.labels.example
~mask(type)tools.level-cpp-query.categories.unarytools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
C 风格强制类型转换
tools.level-cpp-query.labels.description
将表达式显式转换为目标类型,能力强但安全性低。
tools.level-cpp-query.labels.example
(int)3.14*atools.level-cpp-query.categories.unarytools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
指针解引用
tools.level-cpp-query.labels.description
读取指针指向的对象。
tools.level-cpp-query.labels.example
*p&atools.level-cpp-query.categories.unarytools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
取地址
tools.level-cpp-query.labels.description
获取对象在内存中的地址。
tools.level-cpp-query.labels.example
&valuesizeoftools.level-cpp-query.categories.unarytools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
求字节大小
tools.level-cpp-query.labels.description
返回类型或表达式占用的字节数,编译期求值。
tools.level-cpp-query.labels.example
sizeof(int)co_awaittools.level-cpp-query.categories.unarytools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
协程等待
tools.level-cpp-query.labels.description
C++20 起暂停协程并等待 awaitable 的结果。
tools.level-cpp-query.labels.example
co_await tasknewtools.level-cpp-query.categories.unarytools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
动态分配
tools.level-cpp-query.labels.description
在堆上分配并构造对象,返回指针。
tools.level-cpp-query.labels.example
new int(5)new[]tools.level-cpp-query.categories.unarytools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
动态分配数组
tools.level-cpp-query.labels.description
在堆上分配数组并构造元素。
tools.level-cpp-query.labels.example
new int[10]deletetools.level-cpp-query.categories.unarytools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
释放对象
tools.level-cpp-query.labels.description
析构并释放由 new 分配的单个对象。
tools.level-cpp-query.labels.example
delete pdelete[]tools.level-cpp-query.categories.unarytools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
释放数组
tools.level-cpp-query.labels.description
析构并释放由 new[] 分配的数组。
tools.level-cpp-query.labels.example
delete[] arrtools.level-cpp-query.labels.levelPrefix 4tools.level-cpp-query.labels.priorityHint
.*tools.level-cpp-query.categories.pointerToMembertools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
对象成员指针访问
tools.level-cpp-query.labels.description
通过成员指针访问对象的成员。
tools.level-cpp-query.labels.example
(obj.*memPtr)->*tools.level-cpp-query.categories.pointerToMembertools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
指针成员指针访问
tools.level-cpp-query.labels.description
通过指针和成员指针访问对象的成员。
tools.level-cpp-query.labels.example
(ptr->*memPtr)tools.level-cpp-query.labels.levelPrefix 5tools.level-cpp-query.labels.priorityHint
*tools.level-cpp-query.categories.multiplicativetools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
乘法
tools.level-cpp-query.labels.description
两个操作数相乘。
tools.level-cpp-query.labels.example
a * b/tools.level-cpp-query.categories.multiplicativetools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
除法
tools.level-cpp-query.labels.description
整数除法向零截断;浮点除法保留小数。
tools.level-cpp-query.labels.example
10 / 3%tools.level-cpp-query.categories.multiplicativetools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
取余
tools.level-cpp-query.labels.description
返回整数相除的余数,操作数必须为整型。
tools.level-cpp-query.labels.example
10 % 3tools.level-cpp-query.labels.levelPrefix 6tools.level-cpp-query.labels.priorityHint
+tools.level-cpp-query.categories.additivetools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
加法
tools.level-cpp-query.labels.description
两个数值相加,或指针与整数相加。
tools.level-cpp-query.labels.example
a + b-tools.level-cpp-query.categories.additivetools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
减法
tools.level-cpp-query.labels.description
两数相减,或两个指针相减得到偏移量。
tools.level-cpp-query.labels.example
a - btools.level-cpp-query.labels.levelPrefix 7tools.level-cpp-query.labels.priorityHint
<<tools.level-cpp-query.categories.shifttools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
左移 / 流插入
tools.level-cpp-query.labels.description
整数按位左移,或在 iostream 中表示流输出。
tools.level-cpp-query.labels.example
1 << 3>>tools.level-cpp-query.categories.shifttools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
右移 / 流提取
tools.level-cpp-query.labels.description
整数按位右移,或在 iostream 中表示流输入。
tools.level-cpp-query.labels.example
8 >> 2tools.level-cpp-query.labels.levelPrefix 8tools.level-cpp-query.labels.priorityHint
<=>tools.level-cpp-query.categories.spaceshiptools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
三路比较
tools.level-cpp-query.labels.description
C++20 起返回 std::strong_ordering / weak_ordering / partial_ordering。
tools.level-cpp-query.labels.example
a <=> btools.level-cpp-query.labels.levelPrefix 9tools.level-cpp-query.labels.priorityHint
<tools.level-cpp-query.categories.relationaltools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
小于
tools.level-cpp-query.labels.description
比较两个操作数,左小于右返回 true。
tools.level-cpp-query.labels.example
a < b<=tools.level-cpp-query.categories.relationaltools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
小于等于
tools.level-cpp-query.labels.description
左小于或等于右返回 true。
tools.level-cpp-query.labels.example
a <= b>tools.level-cpp-query.categories.relationaltools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
大于
tools.level-cpp-query.labels.description
比较两个操作数,左大于右返回 true。
tools.level-cpp-query.labels.example
a > b>=tools.level-cpp-query.categories.relationaltools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
大于等于
tools.level-cpp-query.labels.description
左大于或等于右返回 true。
tools.level-cpp-query.labels.example
a >= btools.level-cpp-query.labels.levelPrefix 10tools.level-cpp-query.labels.priorityHint
==tools.level-cpp-query.categories.equalitytools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
相等
tools.level-cpp-query.labels.description
判断两个值是否相等。
tools.level-cpp-query.labels.example
a == b!=tools.level-cpp-query.categories.equalitytools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
不等
tools.level-cpp-query.labels.description
判断两个值是否不相等。
tools.level-cpp-query.labels.example
a != btools.level-cpp-query.labels.levelPrefix 11tools.level-cpp-query.labels.priorityHint
&tools.level-cpp-query.categories.bitwisetools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
按位与
tools.level-cpp-query.labels.description
两个整数按位执行逻辑与。
tools.level-cpp-query.labels.example
a & btools.level-cpp-query.labels.levelPrefix 12tools.level-cpp-query.labels.priorityHint
^tools.level-cpp-query.categories.bitwisetools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
按位异或
tools.level-cpp-query.labels.description
两个整数按位执行异或,相同为 0,不同为 1。
tools.level-cpp-query.labels.example
a ^ btools.level-cpp-query.labels.levelPrefix 13tools.level-cpp-query.labels.priorityHint
|tools.level-cpp-query.categories.bitwisetools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
按位或
tools.level-cpp-query.labels.description
两个整数按位执行逻辑或。
tools.level-cpp-query.labels.example
a | btools.level-cpp-query.labels.levelPrefix 14tools.level-cpp-query.labels.priorityHint
&&tools.level-cpp-query.categories.logicaltools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
逻辑与(短路)
tools.level-cpp-query.labels.description
短路逻辑与:左操作数为 false 时不计算右操作数。
tools.level-cpp-query.labels.example
a && btools.level-cpp-query.labels.levelPrefix 15tools.level-cpp-query.labels.priorityHint
||tools.level-cpp-query.categories.logicaltools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
逻辑或(短路)
tools.level-cpp-query.labels.description
短路逻辑或:左操作数为 true 时不计算右操作数。
tools.level-cpp-query.labels.example
a || btools.level-cpp-query.labels.levelPrefix 16tools.level-cpp-query.labels.priorityHint
?:tools.level-cpp-query.categories.conditionaltools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
三元条件
tools.level-cpp-query.labels.description
根据条件返回两个表达式之一。
tools.level-cpp-query.labels.example
x > 0 ? 1 : -1throwtools.level-cpp-query.categories.conditionaltools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
抛出异常
tools.level-cpp-query.labels.description
抛出异常对象,由匹配的 catch 捕获。
tools.level-cpp-query.labels.example
throw std::runtime_error("err")co_yieldtools.level-cpp-query.categories.conditionaltools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
协程产出
tools.level-cpp-query.labels.description
C++20 起从生成器协程中产出一个值。
tools.level-cpp-query.labels.example
co_yield value=tools.level-cpp-query.categories.assignmenttools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
赋值
tools.level-cpp-query.labels.description
将右操作数的值赋给左操作数。
tools.level-cpp-query.labels.example
x = 10+=tools.level-cpp-query.categories.assignmenttools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
加法赋值
tools.level-cpp-query.labels.description
x = x + y 的简写。
tools.level-cpp-query.labels.example
x += 1-=tools.level-cpp-query.categories.assignmenttools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
减法赋值
tools.level-cpp-query.labels.description
x = x - y 的简写。
tools.level-cpp-query.labels.example
x -= 1*=tools.level-cpp-query.categories.assignmenttools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
乘法赋值
tools.level-cpp-query.labels.description
x = x * y 的简写。
tools.level-cpp-query.labels.example
x *= 2/=tools.level-cpp-query.categories.assignmenttools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
除法赋值
tools.level-cpp-query.labels.description
x = x / y 的简写。
tools.level-cpp-query.labels.example
x /= 2%=tools.level-cpp-query.categories.assignmenttools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
取余赋值
tools.level-cpp-query.labels.description
x = x % y 的简写。
tools.level-cpp-query.labels.example
x %= 3<<=tools.level-cpp-query.categories.assignmenttools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
左移赋值
tools.level-cpp-query.labels.description
x = x << y 的简写。
tools.level-cpp-query.labels.example
x <<= 2>>=tools.level-cpp-query.categories.assignmenttools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
右移赋值
tools.level-cpp-query.labels.description
x = x >> y 的简写。
tools.level-cpp-query.labels.example
x >>= 2&=tools.level-cpp-query.categories.assignmenttools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
按位与赋值
tools.level-cpp-query.labels.description
x = x & y 的简写。
tools.level-cpp-query.labels.example
x &= 0xFF^=tools.level-cpp-query.categories.assignmenttools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
按位异或赋值
tools.level-cpp-query.labels.description
x = x ^ y 的简写。
tools.level-cpp-query.labels.example
x ^= mask|=tools.level-cpp-query.categories.assignmenttools.level-cpp-query.associativity.right
tools.level-cpp-query.labels.name
按位或赋值
tools.level-cpp-query.labels.description
x = x | y 的简写。
tools.level-cpp-query.labels.example
x |= 0x01tools.level-cpp-query.labels.levelPrefix 17tools.level-cpp-query.labels.priorityHint
,tools.level-cpp-query.categories.commatools.level-cpp-query.associativity.left
tools.level-cpp-query.labels.name
逗号运算符
tools.level-cpp-query.labels.description
依次求值左、右操作数,结果为右操作数的值。常用于 for 语句的步进表达式。
tools.level-cpp-query.labels.example
for (int i=0,j=9; i<j; ++i,--j)