C++ vector string语法?

C++ vector string语法?,第1张

string是一个类(就是一种特殊的类型),是用来存储和 *** 作字符串的。
string&是string类的引用类型,var是这种引用类型的变量
整个for(:)就是一个循环语句,是一种新的循环类型,作用是迭代COMList的每个元素,将这个元素赋给var,然后执行下面的EditAddText函数。
(LPARAM)var是强制类型转换,将var转换成LPARAM类型的变量。因为var是引用类型,而引用类型实际上就是一个表示变量的地址的无符号整数,同时,LPARAM实际上是由一个无符号整数类型定义成的宏,因此,可以将var转换成LPARAM类型。
EditAddText函数的LPARAM参数应该就是一个无符号整数,是用来接收要添加的文本(字符串)的地址的。
补充一个for(:)迭代循环的例子:
int intarr[]={1,2,3};
//这里的e就是1,2,3
for(int& e:intarr)
{
//对数组intarr的每个元素e执行的 *** 作
}

JAVA本来就是不支持运算符重载的。
JAVA在内存中每个不同String都是一个实例化的对象。
当 String + String的时候,在内存中会先建立一个StringBuilder对象
然后再进行append,再把相加之后的对象引用传给结果。

在c++中,“&”不仅仅是引用的含义
1,取地址
int i=1;
int pi=&i;
2,位运算,表求按位与
int a=1,b=3;
int c=a&b;
3,引用
int a;
int &b=a;//b是a的引用,b等同于a

在使用stringformat进行字符串格式化时,有时候需要在字符串中添加多个相同的字符。这时候可以使用“重复字符”符号来实现。
在stringformat中,“重复字符”符号是使用大括号({})后跟一个数字和重复字符的方式来表示的,例如“{}:{}”表示在两个大括号中间添加一个冒号符号。如果需要添加多个相同的字符,只需要在数字后面加上一个逗号,并再次跟上数字即可,例如“{}{:,-10}”表示在两个大括号中间添加一个占位符,占位符为10个空格。
这种添加多个相同字符的方式在字符串格式化中应用广泛,例如在输出表格时,可以使用“重复字符”符号来对齐表格中的内容。同时,在实际开发中也可以使用其他的方法来实现相同的效果,例如使用字符串拼接、正则表达式等。

C++中的引用符号“&”的使用方法是,类型标识符 &引用名=目标变量名。

C++是C语言的继承,它可进行过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。引用(reference)就是C++对C语言的重要扩充。引用就是某一变量(目标)的一个别名,对引用的 *** 作与对变量直接 *** 作完全一样。

扩展资料:

引用说明:

1、&在此不是求地址运算,而是起标识作用。

2、类型标识符是指目标变量的类型。

3、声明引用时,必须同时对其进行初始化。

4、引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名。

5、对引用求地址,就是对目标变量求地址。&ra与&a相等。即我们常说引用名是目标变量名的一个别名。别名一词好像是说引用不占据任何内存空间。但是编译器在一般将其实现为const指针,即指向位置不可变的指针。即引用实际上与一般指针同样占用内存。

6、不能建立引用的数组。因为数组是一个由若干个元素所组成的集合,所以无法建立一个由引用组成的集合。但是可以建立数组的引用。

参考资料来源:百度百科-C++引用

1
"书上说
string
变量可以看做是
只读的char
变量数组
那么只有在初始化的时候可以string
变量赋值。"
你的理解是有偏差的只读的char
变量数组和只读的string
变量,体会一下这两个词
只读的char
变量数组
表示string作为字符串数组时是只读的没有说作为string变量时只读但是
这是msdn的标准描述
"String
对象称为不可变的(只读),因为一旦创建了该对象,就不能修改该对象的值。看来似乎修改了
String
对象的方法实际上是返回一个包含修改内容的新
String
对象。"
对string变量的赋值,实际上是把变量指向向新建了string变量,原来的string变量会被丢弃
2
"是把s指向了“98745612”之个字符串
这么说来我们在进行
s
=
"98745612";
时又开辟了一块内存?"
C#的string是特殊的引用类型,运行时,每次赋值 *** 作都会导致生成新的string,可以理解为又开辟了一块内存
但编译时,net会检查字符串池,符号列表里面不会包含重复的字符串符号
3
string
s
=
"HHH";
sToLower();
sToLower()方法返回值的时候返回的是s经过ToLower处理后的值
hhh
即使
s="hhh"
调用ToLower后返回的hhh和原来s的hhh仍然不是同一个字符
4
"我们可以char
a=s[0];
不可以
s[0]=‘d’;"
这个不是跟C里边
不能在初始化除外不能对一个字符数组整体赋值相似
是这样的c里面对字符数组整体赋值,只是指针 *** 作,修改原来数组的指针指向新的位置
c里面对数组赋值,如果新值的长度小于原来的数组,可以直接在原来数组中 *** 作,否则需要new一个新的数组,然后修改原来数组的指针
5
也可以看是字符数组
字符串
变量
跟别的变量
有区别?
区别肯定是有的,只不过大部分时候不需要关注这些区别,可以去看看C#msdn里面的值类型和引用类型,看看msdn里面
数组
字符串
变量
的几个定义,msdn是最标准的

就是VC++net里的 System::String类型
在C#里是 SystemString
而在 c++net 里,为表示引用,所以后面加了一个^。
net提供的所有引用类型,在vc++net里,
都是这样的。
比如 Object^ obj = gcnew Object();
你把代码改成这样
String^ savePath ="C:\\FileNametxt";
StreamWriter^ sww = File::CreateText(savePath);
String^ text = "IBM 2008 年 12 月 00971351415 9% 变化";
sww->WriteLine(text);
sww->Close();
因为sww->WriteLine(eachRes);
你这里eachRes是一个char,
而WriteLine没有直接接受参数为char的重载,会转化为bool类型,所以只会在文件中输出一个True,不会输出字符串。因为此char不为空。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/yw/13381815.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-25
下一篇 2023-07-25

发表评论

登录后才能评论

评论列表(0条)

保存