社区
C++ 语言
帖子详情
一个关于string类赋值问题
fbusybox
2008-06-19 11:25:18
请教一个关于string类赋值问题:
std::string strTemp;
strTemp = std::string(begin_point, end_point);
觉得这种赋值方式乖乖的, 应该是定义一个对象然后赋值给strTemp才比较合法.
因为构造函数没有返回值的,std::string(begin_point, end_point)不像是初始化了一个类的对象,像是调用了构造函数.
欢迎各位Cpluspus牛人指教!
...全文
133
9
打赏
收藏
一个关于string类赋值问题
请教一个关于string类赋值问题: std::string strTemp; strTemp = std::string(begin_point, end_point); 觉得这种赋值方式乖乖的, 应该是定义一个对象然后赋值给strTemp才比较合法. 因为构造函数没有返回值的,std::string(begin_point, end_point)不像是初始化了一个类的对象,像是调用了构造函数. 欢迎各位Cpluspus牛人指教!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fbusybox
2008-06-22
打赏
举报
回复
[Quote=引用 7 楼 handsomezwm 的回复:]
个人认为里面的begin_point ,end_point 应该是两个迭代器;
举个例子来说明:
string s1("nihao,beijing");
string::iterator begin_point=s1.begin(),end_point=s1.end();
string s2(begin_point,end_point);
cout < <s2 < <endl;
结果是:nihao,beijing
[/Quote]
That's right.
fbusybox
2008-06-22
打赏
举报
回复
Renew:
其实这种方式很常见的,特别是在ostream_iterator中常用到,另外当for/while等loop时也需要该种方式.
strTemp = std::string(begin_point, end_point);
实例化某个类,或模板类.
handsomezwm
2008-06-21
打赏
举报
回复
个人认为里面的begin_point ,end_point 应该是两个迭代器;
举个例子来说明:
string s1("nihao,beijing");
string::iterator begin_point=s1.begin(),end_point=s1.end();
string s2(begin_point,end_point);
cout<<s2<<endl;
结果是:nihao,beijing
jieao111
2008-06-20
打赏
举报
回复
是的,你在哪看的代码
晨星
2008-06-20
打赏
举报
回复
为啥不直接这样?
std::string strTemp(begin_point, end_point);
qmm161
2008-06-20
打赏
举报
回复
2楼的写法比较简单吧,如果是你那种写法的话,先调用构造函数创建一个临时对象,然后再赋值
fbusybox
2008-06-20
打赏
举报
回复
[Quote=引用 2 楼 steedhorse 的回复:]
为啥不直接这样?
std::string strTemp(begin_point, end_point);
[/Quote]
有道理...
的确有点多次一举了,不过从中可以学到cplusplus 某方面知识
leehq
2008-06-20
打赏
举报
回复
[Quote=引用楼主 fbusybox 的帖子:]
请教一个关于string类赋值问题:
std::string strTemp;
strTemp = std::string(begin_point, end_point);
觉得这种赋值方式乖乖的, 应该是定义一个对象然后赋值给strTemp才比较合法.
因为构造函数没有返回值的,std::string(begin_point, end_point)不像是初始化了一个类的对象,像是调用了构造函数.
欢迎各位Cpluspus牛人指教!
[/Quote]
的确有点脱裤子放屁的感觉···
HelloDan
2008-06-19
打赏
举报
回复
explicit string ( );
string ( const string& str );
string ( const string& str, size_t pos, size_t n = npos );
string ( const char * s, size_t n );
string ( const char * s );
string ( size_t n, char c );
template<class InputIterator> string (InputIterator begin, InputIterator end);
就是构造一个临时对象来赋值,是正确的。不过也可以是你说的那样。
java六大必须理解的
问题
文档
java六大必须理解的
问题
、内容比较详细、写的比较具体
c++
string
类
赋值
方法
1.若s2没有赋初值的正确
赋值
方法 若s2没有赋初值,那我们要怎样才能给
string
类
的字符串
赋值
呢,看下面这段代码:只需要将
赋值
语句改成这样 s2=s2+s1[i],加法即向其
赋值
#include<iostream> #include<
string
> using namespace std; int main() {
string
s1="12345";
string
s2; for(int i=0;i<5;i++) { s2=s2+s1[i];//着重..
关于
String
赋值
问题
如图都没有给
String
赋值
,为什么第
一个
可以不给
String
赋值
,而另
一个
没有
赋值
就报错?到底什么时候适合给
String
赋值
? 报错不是因为
String
xx没有
赋值
!而是你switch语句有些
问题
! 语法上是没有
问题
的,但这里有
一个
逻辑
问题
。 一开始你的
String
xx没有
赋值
,最后你System.out.println(xx),那么这之间你必须给xx
赋值
,否则
C++ 学习之
string
容器基本
赋值
操作
1、本质:
string
是C++风格的字符串,而
string
本质上是
一个
类
string
和char * 区别: char * 是
一个
指针
string
是
一个
类
,
类
内部封装了char*,管理这个字符串,是
一个
char*型的容器。 2、特点:
string
类
内部封装了很多成员方法 例如:查找find,拷贝copy,删除delete 替换replace,插入insert
string
管理char*所分配的内存,不用担心复制越界和取值越界等,由
类
内部进行负责 3、通过构造函数
赋值
:
string
();
安卓给
string
对象
赋值
_关于
String
的两种
赋值
方式
String
的两种
赋值
是不同的,
String
str1=“hello”,指向堆内存中的"hello",而
String
str2=new
String
("hello"),因为new开辟的新的堆内存,所以二者地址不同,在用==时,显示的是false。例一:
String
str1=“Hello”;
String
str2=“Hello”;
String
str3=“Hello”;这时候三者都是指向同一堆内存...
C++ 语言
65,192
社区成员
250,525
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章