string居然也可以用<<和>>
最近在项目工程中碰到一段代码, 颇为费解, string居然也可以用 <<和>>, 于是我单独写了个小程序测了一下:
#include <iostream> #include <string> using namespace std; int main() { int a = 1; string s; s << a; return 0; }
编译错误:error: no match for 'operator<<' in 's << a'
这是正常的。
但为什么在工程项目中就可以呢? 请教了一下别的同事, 才发现, 是对string进行了扩展, 在项目工程中写测试代码, 部分代码如下:
// 工程中的部分代码 int main() { int a = 1; float b = 2.0f; bool c = true; string d = "hello world"; string s; s << a; s << b; s << c; s << d; cout << "size is " << s.size() << endl; int a2; float b2; bool c2; string d2; s >> a2; s >> b2; s >> c2; s >> d2; cout << a2 << endl; cout << b2 << endl; cout << c2 << endl; cout << d2 << endl; cout << "size is " << s.size() << endl; return 0; }
结果为:
size is 22
1
2
1
hello world
size is 0
可见, string在这里具备了类似流的功能。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接
相关推荐
-
详解C++ string字符串类
C++字符串string类 在C语言里,字符串是用字符数组来表示的,而对于应用层而言,会经常用到字符串,而继续使用字符数组,就使得效率非常低. 所以在C++标准库里,通过类string从新自定义了字符串. 头文件: #include <string> string直接支持字符串连接 string直接支持字符串的大小比较 string直接支持子串查找和提取 string直接支持字符串的插入和替换 string同时具备字符串数组的灵活性,可以通过[ ]重载操作符来访问每个字符. 字符串数组和str
-
Java中字符数组和字符串与StringBuilder和字符串转换的讲解
1.字符串->字符数组: String str = "abc": char[] a = str.toCharArray(); 记忆:字符串是个类,所以用内建函数 延伸: char b = str.charAt(1); str.length(); a.length; 2.字符数组->字符串: String str = String.valueOf(a): 记忆:类似强制类型转换格式,String(a) 延伸:字符转字符类 Character c = Character.val
-
将string类型的数据类型转换为spark rdd时报错的解决方法
在将string类型的数据类型转换为spark rdd时,一直报这个错,StructType can not accept object %r in type %s" % (obj, type(obj))) . . . s = str(tree) y = str(YESTERDAY) list0 = [s, y] outRes = self.sc.parallelize(list0) df_tree = outRes.toDF("model: string, dt: string&qu
-
java String类功能、原理与应用案例【统计、判断、转换等】
本文实例讲述了java String类功能.原理与应用.分享给大家供大家参考,具体如下: String构造方法 package cn.itcast_01; /* * 字符串:就是由多个字符组成的一串数据.也可以看成是一个字符数组. * 通过查看API,我们可以知道 * A:字符串字面值"abc"也可以看成是一个字符串对象. * B:字符串是常量,一旦被赋值,就不能被改变. * * 构造方法: * public String():空构造 * public String(byte[] by
-
浅谈为什么Java里面String类是不可变的
在Java里面String类型是不可变对象,这一点毫无疑问,那么为什么Java语言的设计者要把String类型设计成不可变对象呢?这是一个值得思考的问题 Java语言的创建者James Gosling,曾经在一次采访中被人问到:什么时候应该使用不可变对象(immutable object),他回答:任何可以使用的时候都会使用. 在这之前,我们先来简单了解一下,什么是不可变对象? 不可变对象指的是在对象创建之后,对象的内部状态以及对象的内存指针地址都不不能被改变.在Java里面final关键字就是
-
strings命令分析浅谈Go和C++编译时的一点小区别
最近查一个bug, 用strings命令分析, 竟然出乎意料地没有结果, 非常纳闷. 最后根据这个线索查出了bug的根本原因. 1. 在C++中, 即使函数在代码层面没有被调用, 也会最终编译到二进制中, 用strings可以分析. #include <iostream> using namespace std; void fun() { printf("hello world\n"); // strings分析有结果 } int main() { return 0;
-
String的两种初始化方法讲解
前言:String的创建和初始化有两种方法,既可以用String str = new String("abc")创建一个字符串,也可以用String str = "abc"的形式创建. 1: String str = "abc"创建一个字符串的过程 首先在常量池(方法区)中查找是否存在内容为"abc"的字符串对象 如果不存在则在常量池中创建一个"abc"的字符串对象,并让str引用该对象 如果存在则直接让s
-
Java StringBuffer类与StringBuilder类用法实例小结
本文实例总结了Java StringBuffer类与StringBuilder类用法.分享给大家供大家参考,具体如下: StringBuffer类的构造方法 package cn.itcast_01; /* * 线程安全(多线程讲解) * 安全 -- 同步 -- 数据是安全的 * 不安全 -- 不同步 -- 效率高一些 * 安全和效率问题是永远困扰我们的问题. * 安全:医院的网站,银行网站 * 效率:新闻网站,论坛之类的 * * StringBuffer: * 线程安全的可变字符串. * *
-
浅谈java String不可变的好处
一.java内部String类的实现: java 8: public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[]; } java 9 及之后:(使用coder标识了编码) public final class Stri
-
关于java String中intern的深入讲解
序 本文主要研究一下java String的intern String.intern() java.base/java/lang/String.java public final class String implements java.io.Serializable, Comparable<String>, CharSequence, Constable, ConstantDesc { //...... /** * Returns a canonical representation for
随机推荐
- redis数据结构之intset的实例详解
- IOS 指纹识别详解及实例代码
- 以911新闻为例演示Python实现数据可视化的教程
- PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
- PHP 正则表达式的几则使用技巧
- Android自定义控件开发实战之实现ListView下拉刷新实例代码
- javascript基础知识
- 用C/C++来实现 Node.js 的模块(二)
- Android实现动态圆环的图片头像控件
- bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
- linux shell发送Email邮件的方法详解
- 为数据库生成某个字段充填随机数的存储过程
- jquery插件之easing 动态菜单
- 详谈jQuery中的this和$(this)
- javascript 学习之旅 (2)
- 小心!Internet Explorer新漏洞
- CentOS 7.0关闭默认防火墙启用iptables防火墙的设置方法
- java支付宝即时到帐提交订单功能
- Java棋类游戏实践之单机版五子棋
- java从输入流中获取数据并返回字节数组示例