float 只能保证六位有效数字
string 类型支持长度可变的字符串,vector 可用于保存一组指定类型的对象。bitset 类。通过这个类可以把某个值当作们的集合来处理。
using std::cin;
using namespace std;
string s1; | Default constructor; s1 is the empty string默认构造函数 s1 为空串 |
string s2(s1); | Initialize s2 as a copy of s1将 s2 初始化为 s1 的一个副本 |
string s3("value"); | Initialize s3 as a copy of the string literal将 s3 初始化为一个字符串字面值副本 |
string s4(n,'c'); | Initialize s4 with n copies of the character 'c'将 s4 初始化为字符 'c' 的 n 个副本 |
getline 函数从输入流的下一行读取,并保存读取的内容到不包括换行符。
Zz http://hi.baidu.com/s0746/blog/item/ 308048c 46a 5f 47ad8226acdd.html
#include <string>
using namespace std;
void main(void)
{
string st ;
cout<<"Input st:";
getline(cin,st);
cout<<st<<endl;
}
上面这段代码,如果输入abc,那么需要按两次回车键才能显示abc(在VC6中),因为getline有三个参数,第三个参数是字符串的结束符,也就是当getline遇到这个结束符时,就不在接受输入了,比如写成 getline(cin,st,'s');
即使输入的是abcsabc 那么也只会显示 abc ,因此对于上面出现的情况,有人说getline默认情况下以回车('/n')作为结束符,第一次按回车表示字符串结束,第二次按回车才开始输出。也有人说这是VC6的bug,我觉得前一种解释比较合理,因为: 如果你输入abc(回车)abc,那么程序会显示abc,可见回车的确是函数默认的结束符。
cin.get()第一个用法,是读入一个字符。
String::size 操作返回的是 string::size_type 类型的值。
两个 string 对象相等是指它们的长度相同,且含有相同的字符。
赋值操作确实需要做一些工作。它必须先把 st1 占用的相关内存释放掉,然后再分配给 st2 足够存放 st2 副本的内存空间,最后把 st2 中的所有字符复制到新分配的内存空间。
string 对象的下标从 0 开始。