首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用下标string类型赋值之后,cout输出变量问题。

今天写创建文件夹时候,怎么创建都不会,反复修改,确定错误是出在了string类型变量上面。...看下面代码 //这个一个函数中代码,函数参数string fileurl_s int len = fileurl_s.length(); std::string...,fileurl_s_cy至始至终空,长度也空,导致无法正常创建文件夹 明明可以正常输出fileurl_s_cy[i],但是无法正常输出fileurl_s_cy,本以为是’\0’问题,发现加上也无济于事...,fileurl_s_cy整体长度依旧是0 我可以使用std::stringfileurl_s_cy = “www/ccccc” 这种形式正常创建文件夹,就是无法使用下标的赋值方式 经过一番百度,得知是因为声明...解决方法如下: 声明时候改为std::string fileurl_s_cy(len,’\0’); 这样就可以正常使用下标赋值,输出以及整体输出 怕忘记,记录与此。

4.9K40
您找到你想要的搜索结果了吗?
是的
没有找到

C++11特性大杂烩

auto dou = 1.34;//返回类型double,auto推导变量dou类型doubleauto str = "jinitaimei";//返回类型string,auto推导变量str...,比如没有返回接收的话,就不能自动推导变量类型了;而typeid().name()只能用来打印类型名,这时就需要另外一个关键字来处理这些场景decltype关键字decltype将变量类型声明为表达式指定类型用法...,跳过返回拷贝构造临时对象这步,直接用返回赋值参数对象,这里赋值重载也是一次拷贝构造(这里显示两次拷贝构造原因是因为赋值重载函数用到了拷贝构造)图片但是这里to_string返回,意味着返回需要用到拷贝构造...这里参数里,左和右类型调用Func函数左引用版本,const左和const右类型调用Func函数const左引用版本原因是右被引用后会导致右被放到特定存储位置,因此该右可以被取地址...lambda函数捕捉列表必须空在块作用域中lambda函数仅能捕捉父作用域中局部变量,捕捉任何非此作用域或者非局部变量都会导致编译报错lambda表达式之间不能相互赋值,即使看起来类型相同lambda

87950

Java基础-07(01).总结private,this,封装,static,成员方法变量,局部变量匿名对象

局部变量:没有默认,必须定义,赋值,然后才能使用 (5)使用范围 成员变量:在整个类中都可以访问 局部变量:只能在当前方法访问 (6)变量使用原则:就近原则 如果在方法中找到,使用局部变量...如果在类中方法外找到,使用成员变量 如果在类中没有找到,报错 /* 成员变量和局部变量区别?...("我爱学习"); } } class StudentDemo { //如果你看到了一个方法形式参数是一个类类型(引用类型),这里其实需要是该类对象。...但是呢,它偏偏不调用方法来赋值,还是直接赋值了, 这样我们方法就没有起到作用。 我就应该要求你必须使用我方法,而不能直接调用成员变量赋值。 怎么去强制要求不能直接使用成员变量呢?...以后再提类组成: 成员变量 构造方法 成员方法 根据返回: void类型 非void类型 形式参数: 空参方法 非空参方法 */ class Student { public String

1K40

TypeScript手记(六)

如下面的例子: let x = 3 变量 x 类型被推断数字。这种推断发生在初始化变量和成员,设置默认参数值和决定函数返回时。 大多数情况下,类型推断是直截了当地。...这样的话就不报错了,因为这里不会使用到上下文类型。 上下文类型会在很多情况下使用到。通常包含函数参数赋值表达式右边,类型断言,对象成员,数组字面量和返回语句。...如果变量在运行时是 Bird 类型,那么调用 pet.swim() 就出错了。 类型保护 联合类型适合于那些可以为不同类型情况。当我们想确切地了解是否 Fish 或者是 Bird 时怎么办?...你可以使用联合类型明确包含它们: let s = 'foo' s = null // 错误, 'null'不能赋值'string' let sn: string | null = 'bar' sn...= undefined // ok c.b = null // error, 'null' 不能赋值 'number | undefined' 类型保护和类型断言 由于可以为 null 类型能和其它类型定义联合类型

1K10

第4章 | 移动

——译者注 4.2 移动 在 Rust 中,对大多数类型来说,像变量赋值、将其传给函数或从函数返回这样操作都不会复制,而是会移动。...变量赋值则与此略有不同,如果你将一个转移已初始化变量,那么 Rust 就会丢弃该变量先前。...例如,将参数传给函数会将所有权转移函数参数、从函数返回一个会将所有权转移调用者、构建元组会将转移元组。 你现在可以更好地理解 4.1 节示例中到底发生过什么了。...需要找到一种在遵循类型限制情况下执行此操作方法。...根据经验,任何在丢弃需要做一些特殊操作类型不能是 Copy 类型:Vec 需要释放自身元素、File 需要关闭自身文件句柄、MutexGuard 需要解锁自身互斥锁,等等。

5410

Java泛型可行与不可行

泛型基础 理解 一般情况,一个类属性,或者一个方法参数/返回需要在编写代码时声明基本类型或者自定义类型,但有时候无法在编写代码时使用现有的类来表达参数类型或者返回类型,这时候就需有一种方式可以表达下面的意思...:有一个容器泛型是基类变量,想要将一个泛型是子类容器赋值这个变量,编译器是不允许;因为运行时会将泛型擦除,一旦将一个泛型是子类容器赋值泛型是基类容器变量,在运行时就可以将一个这个基类其他子类对象放入这个窗口...class Impl2 implements InterfaceA {} 容器这一特点与数组不同,子类数组对象可以赋值基类数组变量(类似向上转型),但是在运行期jvm 可以知道数组元素中对象类型是哪个具体子类...,又可以将子类泛型容器赋值基类泛型变量,可以使用通配符(单一边界,extends 后面只能有一个类型) 通配符困难之处 当一个类在声明时使用了<?...,它返回只能用Object 类型变量接受 无界通配符 两个功能 这里想用泛型代码来编写,这里并不是要用原生类型,但是当前情况下,泛型参数可以持有任何类型 当有个地方需要多个泛型参数你只能确定一部分时可以使用无界通配符

32930

【Vue3+TypeScript】CRM系统项目搭建之 — 关于拥抱 TypeScript 这件事【上】

—— 隐式any let b //以下对b赋值,均⽆警告 b = 100 b = '你好' b = false 注意点: any 类型变量,可以赋值任意类型变量 /* 注意点:any类型变量...,可以赋值任意类型变量 */ let a let x: string x = a // ⽆警告 4.3. unknown unknown 含义是:未知类型。...⼏乎不⽤ never 去直接限制变量,因为没有意义,例如: /* 指定a类型never,那就意味着a以后不能存任何数据了 */ let a: never // 以下对a所有赋值都会有警告 a =...泛型 定义⼀个函数或类时,有些情况下⽆法确定其中要使⽤具体类型(返回参数、属性类型不能确 定),此时就需要泛型了 举例: 就是泛型,(不⼀定⾮叫 T ),设置泛型后即可在函数中使⽤ T 来表示该类型...{ name: string; }”参数不能类型“Demo”参数 test('123') test({name:'张三',length:10}

8810

Java 中变量与数据类型

变量一定要先声明然后再使用。 声明一个变量类型后,不能用它来存储其类型数据。 变量定义时可以不赋初始,但是在使用时必须赋值变量是有使用范围,在同一使用范围内,不能重复定义同一个变量。...那么如何一个基本类型变量赋值呢?...即就是,对于低精度数据类型,如果要转换为高精度数据类型,直接将低精度高精度即可; 但对于高精度数据类型,如果想要转换为低精度数据类型,则需要采用 强制转换 手段,此时需要承担精度丢失风险...b = a; // 高精度住低精度,由于 long 范围比 int 大,所以需要强制转 a = (int)b; 隐式转换(自动类型转换) 当满足如下条件时,如果将一种类型数据赋值另一种数据类型变量时...类型赋值 int,则需要强制转换 num = (int)ans; 注意:强制转换可能会导致精度丢失,所以一般情况下尽量能不用就不用。

51730

1.1 C++ STL 字符串构造函数

使用find()函数在字符串str1中查找字符u第一次出现位置,并将其赋值变量x,如果查找到了,则使用substr()函数输出从字符u位置到字符串结尾处子串。...使用substr()函数提取从字符串email第0个字符开始到pos位置之前子串,并将其赋值变量username,并输出该变量。...使用substr()函数提取从字符串emailpos+1位置开始到结束子串,并将其赋值变量mail,并输出该变量。...读者需要注意,在使用substr()函数提取子串时,第一个参数表示子串起始位置,第二个参数表示子串长度。如果第二个参数不写,则默认提取从起始位置开始到字符串结尾处字符。...使用指针变量ptr创建一个新string类型变量str1,并将转换后字符串赋值给它,用于输出其

15520

1.1 C++ STL 字符串构造函数

使用find()函数在字符串str1中查找字符u第一次出现位置,并将其赋值变量x,如果查找到了,则使用substr()函数输出从字符u位置到字符串结尾处子串。...使用substr()函数提取从字符串email第0个字符开始到pos位置之前子串,并将其赋值变量username,并输出该变量。...使用substr()函数提取从字符串emailpos+1位置开始到结束子串,并将其赋值变量mail,并输出该变量。...读者需要注意,在使用substr()函数提取子串时,第一个参数表示子串起始位置,第二个参数表示子串长度。如果第二个参数不写,则默认提取从起始位置开始到字符串结尾处字符。...使用指针变量ptr创建一个新string类型变量str1,并将转换后字符串赋值给它,用于输出其

17230

TypeScript类型声明

)声明变量类型any时编译时会绕过所有类型检测,直接通过编译阶段检查可以任意访问属性方法和属性any类型可以赋值任意类型如果变量初始没有定义类型,默认为any;经过赋值后,TS会根据赋值类型来标识变量类型...五、unknow(未知类型)声明变量类型unknow时安全性更高它用于描述类型不确定变量,这与any类型相似,更安全,因为对未知做任何事情都是不合法unknown类型只能赋值any和unknown...类型变量let testValue1: unknown = unknownValue;//赋值any类型变量let testValue2: any = unknownValue;错误示范://赋值...,强制让ts编译器相信我们在做什么操作六、void(空类型)声明对象类型void时返回function func(): void { }声明一个变量void 时只能将它赋值 undefined...变量也可以声明为never类型不能赋值设置变量类型never,表示永远不能执行完或者永远Error,具体示例如下:函数中出现了死循环,永远不能执行完,因此其函数类型:() => neverfunction

33830

Java中真的只有传递么?

但是要知道String也是引用传递只不过它引用被重新赋值,指向了别的对象了,所以不会影响原值。所以String不能简单说是传递。...引用类型大概是这样解释( 基本类型就不用说了 ),实际变量(实际参数赋值一份自己引用地址传给方法,方法形式参数拿到是实参引用地址。侧重点在,所以结论说是引用类型也是传递。...在函数内部对参数进行操作时,需要先拷贝地址寻找到具体,再进行操作。如果该在栈中,那么因为是直接拷贝,所以函数内部对参数进行操作不会对外部变量产生影响。...如果原来拷贝是原值在堆中地址,那么需要先根据该地址找到堆中对应位置,再进行操作。因为传递是地址拷贝所以函数内对操作对外部变量是可见。...这里意思是,不论是基本类型还是引用类型传给函数是实参地址拷贝,也就是内存地址,可以说是引用,只不过基本类型在栈中,函数内对参数操作时直接拷贝,引用类型在堆中,需要找到位置,即地址、引用

1.1K20

变量与数据类型

(id); // 重新赋值2 id = 2; // 打印该变量,观察是否2 System.out.println(id); }...age = 26; 引用数据类型 常见引用数据类型 数据类型 默认 数组 null 类 null 接口 null 而对于引用数据类型,我们经常是需要 new 关键字来进行赋值,但是引用类型 接口是不能被实例化...即就是,对于低精度数据类型,如果要转换为高精度数据类型,直接将低精度高精度即可; 但对于高精度数据类型,如果想要转换为低精度数据类型,则需要采用 强制转换 手段,此时需要承担精度丢失风险...b = a; // 高精度住哪低精度,由于 long 范围比 int 大,所以需要强制转 a = (int)b; 隐式转换(自动类型转换) 当满足如下条件时,如果将一种类型数据赋值另一种数据类型变量时...类型赋值 int,则需要强制转换 num = (int)ans; **注意:**强制转换可能会导致精度丢失,所以一般情况下尽量能不用就不用。

1.1K20

【C++修炼之路】27.右引用

定义时const修饰符后不能给他赋值,但是可以取它地址。左引用就是引用,取别名。.../*10 = 1; x + y = 1; fmin(x, y) = 1;*/ return 0; } 需要注意是右不能够取地址,但是取别名后,会导致右被存储到特定位置,就可以取到该位置地址...return x; } 天有不测风云,世事变化无常,对于返回来说,如果是传入参数作为返回值当然没有问题,因为出了函数栈帧之后该参数还在,静态变量也是如此;如果在函数内部创建变量作为返回,即函数局部变量...,右不能取地址,但是取别名也就是右引用后,会导致右被存储到特定位置,且可以取到该位置地址,也就是说例如:不能取字面量10地址,但是rr1引用后,可以对rr1取地址,也可以修改rr1...因此,在给右引用时,rr1就有了左属性,因为其具备了地址并可以进行访问修改,需要注意是,修改并不是字面量10,10是右,而是被存储到特定位置变量

24400

用汇编带你看Golang里到底有没有类型、引用类型

定义中把数据类型分为类型和引用类型两类,然后介绍 类型是信息本身;引用类型是引用,这个引用可以为 nil,也可以是一个引用,用户可以根据引用找到信息本身。...举个例子,现在有个变量需要存不同类型。...对于一些占用空间比较小类型,比如 整数、浮点数和bool类型变量是这些本身;而对于一些占用空间较大类型变量类型指针,用户可以根据指针找到这个,这样好处之一是可以节省内存。...为啥会有引用类型呢,如果需要在多个过程中针对某个数据进行计算,那就得用地址作为信息去传递。达到效果是 两个变量都保存某个引用,一个变量通过引用把信息改变后,用户通过另一个变量看到改变后信息。...$5, "".b+40(SP) // 长度5赋值b 位置: sp+40byte 当b是string类型时,执行b := a时,b是信息本身对b修改都不会影响到a; 当b取string

75810

TypeScript基础——基本类型检查

基本类型检查 1. 如何进行类型约束 类型约束其实很简单,只需要变量、函数参数、函数返回位置上加上:类型就可以了。...举个栗子: 变量 //我们定义变量时候,肯定是知道这个变量是存放什么类型数据 let name:string = "法医"; 一旦 name 赋值其它类型,立马会提示错误 举个栗子: 函数参数和返回...number,赋值变量result,TS还会智能地发现函数返回结果是number,所以result类型也是number,因此我们只需要参数位置加上类型约束就可以了,TS在每个地方都有类型检查,是不是很牛逼...,null和undefined就不能赋值其它了 3....,否则报错 tupleType = ["法医",5]; any类型:any类型可以绕过类型检查,因此any类型可以赋值任意类型肯定是有隐患,因为它无法使用TS提供保护机制,所以不建议随意使用

1.2K10

手搓string

_str拷贝到新空间,再将其他拷贝 //拷贝构造 string(const string& s) { //先构造一个新空间_str _str = new char[s...._capacity + 1]; //然后将s其他赋值this _size = s._size; _capacity = s._capacity; strcpy(_str, s....在成员函数中交换内置类型时就可以使用标准库中swap函数,**要指定域,因为编译器默认是现在局部找,局部找不到再去全局找,再找不到就报错。**如果去局部找的话,找到swap函数参数不匹配。...六.流插入>重载 这个我们在日期类中就已经接触过了,不能写在类中否则会被this指针抢第一个参数位置,还是使用友元然后定义在类外。..._capacity + 1]; // //然后将s其他赋值this // // _size = s._size; // _capacity = s.

30300

详解 Java 对象与内存控制(上)

变量总是比实例变量先初始化 不管是类变量还是实例变量,你都不能引用一个还没有定义变量,或者在引用之前没有定义变量,如下图所示: ? 以下代码是完全正确: ?...最后执行构造器, name 和 age 两个实例变量赋值 把程序中定义实例变量时初始化语句和费静态代码块调换位置: // 定义时静态变量时指定初始 double weight = 2.3; {...0,需要说明是,构造器只负责对 Java 对象实例变量执行初始化操作,也就是赋初始,因此在真正赋值代码还没有运行时候,这两个 i 0 (3) 在调用 B 构造器之前,会先调用 A...还没有赋值,因为 B i 赋值是在 B() 中进行,而此刻还没有执行到 B(),此刻是在执行 A(),所以打印出来 i 0,这是一个父类访问子类实例变量例子 修改一下 A 构造器...,我们知道在 Animal() 中调用 getDesc() Wolf 类 getDesc() (2) 此刻还没有 name 和 weight 赋值,它们具有默认初始 null 和 0.0

45730

【剑指 Java】第 1 弹:靠这份 Java 基础知识总结,我拿到了满意 Offer

变量基本数据类型,则一旦初始化后不能再改变;若变量是引用类型,则初始化后不能指向其他对象; this 用于引用类的当前实例,比如我们最常用构造方法中,注意不能用在 static 方法中; public...,表示意义也不一样; 修饰类: 表示该类无法被继承; 修饰变量:若变量是基本数据类型,则其数值一旦初始化后就不能再改变,若变量是引用类型,则在其初始化之后便不能再让其指向另一个对象,其指向对象内容是可变...4.5 赋值运算符 操作符 描述 例子 = 简单赋值运算符,将右操作数左侧操作数 C = A + B将把A + B得到C += 加和赋值操作符,它把左操作数和右操作数相加赋值左操作数...,但是 不能用于基本数据类型变量比较。...有,基本数据类型对应默认,而对象统一 null 对象调用 实例变量 局部变量 1、属于方法(方法中变量参数)2、不能被访问控制符及 static 修饰,但可以被 final 修饰 栈 与方法共存亡

46020

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券