几个C++的小问题
来源:百度知道 编辑:UC知道 时间:2024/05/29 04:16:49
ios这个类是在哪个头文件中定义的?
ifstream接受的参数类型是什么?字符串还是字符指针?
如何把字符串和其他常量合并成一个新的字符串?比如"This is "+1。
有一个字符串的数组,如何计算出其中元素的个数?
<stdexcept>里面的类是不是都继承了exception?
谢谢。
3.我试了一下,ostringstream类的确可以把其他类型合并为字符串?不过有没有其他容易点的方法?
4.似乎字符串的大小都是32字节,不论长短,那动态分配的空间不会被算进去吗?
ifstream接受的参数类型是什么?字符串还是字符指针?
如何把字符串和其他常量合并成一个新的字符串?比如"This is "+1。
有一个字符串的数组,如何计算出其中元素的个数?
<stdexcept>里面的类是不是都继承了exception?
谢谢。
3.我试了一下,ostringstream类的确可以把其他类型合并为字符串?不过有没有其他容易点的方法?
4.似乎字符串的大小都是32字节,不论长短,那动态分配的空间不会被算进去吗?
帮你查了下,自己带复习:
1、在<iosfwd>中,是basic_ios的模版typedef:
typedef basic_ios<char, char_traits<char> > ios;
2、是C风格字符串也就是char*或wchar_t*;
3、include <sstream>
ostringstream osstrm;
osstrm << "This is " << 1;
cout << osstrm.str();
4、include <cstring>
char a[] = "123456";
size_t len = strlen(a);
或者
len = string(a).size();
5、都直接或间接地继承了exception类。
补充:
1、很简单因为iostream等其他标准IO文件都已经包含过了iosfwd,iosfwd即ios forward,是标准IO库函数的模版预前声明,它的类实现的库是肯定要包含它的;
3、楼主再好好看看;
4、sizeof(s) / sizeof(string)。
补充2:
string为什么可以动态伸长和收缩?最简单的解释就是它用来存储字符的空间是动态的,可以自己试一试,定义2个长度相差很大地字符串,sizeof他们试试,还不确信的话,打开string类的标准库文件,跟踪一下相关定义也就了解了。
补充3:
int* p;
cout << sizeof(p);
p = new int[xxx];
cout << sizeof(p);
你问你的就是这个问题,无论给p new了多少内存,在sizeof的时