using:
using namespace::name; //这样声明之后,就可以直接访问命名空间中的名字 #includeusing std::cin; int main() { int i; cin >> i; //正确,cin和std::cin含义相同 cout << i; //错误,没有对应的using声明,必须用原来完整的名字 std::cout << i; //正确,显式地从std中使用cout return 0; } //头文件中不应含有using声明
string:
//string表示可变长的字符序列,需要包含: #includeusing std::string; string s1; //默认初始化,s1是一个空字符串 string s2 = s1; //s2是s1的副本 等价于string s2(s1); string s3 = "hiya"; //s3是该字符串字面值的副本 等价于string s3("hiya"); string s4(10,'c'); //s4的内容是cccccccccc //如果使用等号‘=’初始,实际上执行的是拷贝初始化,编译器把右侧的初始值拷贝到新创建的对象去 //如果不使用等号,则执行的是直接初始化 //当初始值只有一个时,两者都行;如果想上面的s4一样初始化需要的值有多个,则一般使用直接初始化 string s5 = "hiya"; //拷贝初始化 string s6("hiya"); //直接初始化 string s7(10,'c'); //直接初始化 //非要用拷贝初始化处理用多个值初始化的情况也行,但要显式地创建一个临时对象用于拷贝 string s8 = string(10,'c'); //拷贝初始化 //等价于下面两条语句 string temp(10,'c'); string s8 = temp;
string操作:
os<>s 从is中读取字符串赋值给s,字符串以空白分隔,返回is getline(is,s) 从is中读取一行赋值给s,返回is s.empty() s为空返回true,否则返回false s.size() 返回s中字符的个数 s[n] 返回s中第n个字符的引用,位置n从0开始计数 s1+s2 返回s1和s2连接后的结果 s1=s2 用s2的副本代替s1原来的字符 s1==s2 如果s1和s2完全一样,则它们相等,区分大小写 < <= > >= 利用字符在字典中的顺序进行比较,区分大小写
读写string对象:
string s; //s是空字符串 cin>>s; //遇空格停止 cout<>s1>>s2; cout<>word) //反复读取,直到文件末尾 cout<
getline:
//如果想要让字符串保留输入的空格符,应该用getline代替>> //getline函数的参数是一个输入流和一个string对象 //函数从输入流中读入内容,直到遇到换行符,注意换行符也被读入了,但换行符不会被存入string中 //换行符是被丢弃了 //如果直接输入换行符,则会得到一个空字符串 int main() { string line; //每次读入一整行,直至文件末尾 while(getline(cin,line)) cout<
string的empty和size操作:
//empty根据string对象是否为空而返回一个布尔值 while(getline(cin,line)) if(!line.empty()) //如果该字符串不为空 cout<80) //只输出字符数超过80的字符串 cout<



