当前位置: 首页 > 知识库问答 >
问题:

c++push_back()和pop_back()在字符串上的Kotlin是什么?

潘向明
2023-03-14

在C++中,创建和操作一个可变的字符堆栈是相当简单的。我使用一个内置的标准数据类型(std::string),使用自带的推送和弹出功能,并且可以直接打印结果。这些都不需要创建额外的类或函数。

#include <iostream>

int main()
{
    std::string path {};
    path.push_back('L');
    path.push_back('R');
    path.pop_back();
    std::cout << path;
}

产生:

L 

问题不是我如何在Kotlin中将这些实现为成员函数。

C++Shell代码

共有1个答案

祁永嘉
2023-03-14

string是不可变的,所以您找不到完全等价物。虽然StringBuilder通常被认为是一种不错的字符串缓冲区类型,但DeleteCharat复制整个备份数组

为此,您可以使用setlength。请注意,与std::string一样,这只会修改字符串缓冲区的内部长度:

val string = StringBuilder("Hello")
string.append(", world!")
string.setLength(string.length - 1)

或者,采用功能更强的方法,使用不可变的值:

var string = "Hello"
string += ", world!"
string = string.dropLast(1)
enum class Move {
    Left, Right, Forward
}

val moves = ArrayDeque<Move>()

// Push a move:
moves.push(Move.Left)

// Pop a move:
val lastMove = moves.pop()

另请参见为什么我应该在堆栈上使用Deque?来解释Java的不幸历史。

 类似资料:
  • Standard C String & Character -> 详解 标准c字符和字符串 atof 语法: #include <stdlib.h> double atof( const char *str ); 功能:将字符串str转换成一个双精度数值并返回结果。 参数str 必须以有效数字开头,但是允许以“E”或“e”除外的任意非数字字符结尾。例如: x = atof( "42.0is_

  • 其实说到字符串,这个概念没有具体的说法,但是我们根据平时的归纳总结,也能一段,便于大家理解,字符串就是把字符连在一直,串成一串又一串;字符串内可以包含数字、字母、特殊符号等所有内容;在Python中只要对一些内容加上对双引号或一对单引号,就默认为是字符串;(三对单引号或三对双引号可以写多行字符串)。 字符串的关键是str,是string的缩写。 一、什么是字符串? 解释:对于"Holl world

  • 问题内容: 我正在使用一个返回字节字符串的库,我需要将其转换为字符串。 尽管我不确定有什么区别-如果有的话。 问题答案: 假设使用Python 3(在Python 2中,这种区别的定义不太明确)-字符串是字符序列,即unicode码点;这些是一个抽象概念,不能直接存储在磁盘上。毫无疑问,字节字符串是字节的序列- 可以 存储在磁盘上的东西。它们之间的映射是一种 编码 -其中有很多(并且无限可能)-并

  • 用例: 以字符串列表的形式从s3获取所有剪辑URL。然后将列表剪辑提交给summary。 问题 1) 字符串池中的字符串何时将被垃圾收集 2)有没有办法清洁琴弦 3)使用弱引用有帮助吗 引用了此链接,但仍不清楚java何时会对字符串进行垃圾收集

  • 如果你使用过python,你会发现字符串和int/float/double便捷的拼接方式;但如果你使用C++,可能你每次需要的时候搜索一下才能知道。本文提供两种简单的方式来完成这个功能。 std::to_string() 通过std::to_string()将数字类型转换成std::string类型,从而可以直接使用+完成字符串的拼接。 # include <iostream> int main