//推荐这样写
struct Person {
std::string name;//默认值:空字符串
int age;//默认值:0
};
Person p1, p2;
//不推荐这样写
struct Person {
std::string name;
int age;
}p1, p2;
#ifndef _PERSON_H_//如果没有定义过预处理变量_PERSON_H_
#define _PERSON_H_
... //头文件内容
#endif
#include
using std::cin;
int main()
{
int num;
cin >> num;
cout << num << endl;//错误,cout与endl没有对应的using声明
std::cout << num << std::endl;//正确
}
#include
using namespace std;
int main()
{
int num;
cin >> num;
cout << num << endl;//正确
}
string str;
cin >> str;//输入hello world
cout << str << endl;//输出hello
return 0;
string str;
getline(cin, str);//输入hello world换行符
cout << str ;//输出hello world
string str = "hello" + "world";//错误;
string str1 = "hello";
string str2 = str1 + "," + "world";//正确,等同于string str2 = (str1 + "," )+ "world";
#include
#include
#include
using namespace std;
int main()
{
string str1 = "hello";
string str2 = str1 + "," + "world";
decltype(str2.size()) punctCount = 0;
for (auto s : str2)
{
if (islower(s))//小写字母
{
cout << s << endl;
}
if (isspace(s))//空格、回车、换行符时
{
cout << s << endl;
}
if (ispunct(s))//标点符号
{
cout << s << endl;
punctCount++;
}
}
cout << punctCount << " punctution characters in " << str2;
//转换成大写形式
for (auto &s : str2)//注意需要是引用
{
if (islower(s))
{
s = toupper(s);
}
}
cout << str2 << endl;
}
string str1 = "hello";
string str2 = str1 + "," + " world";
//依次处理 str2 中的字符直至我们处理完全部字符或者遇到一个空白
for (string::size_type i = 0; i != str2.size() && !isspace(str2[i]) && islower(str2[i]); i++)
{
str2[i] = toupper(str2[i]);
}
cout << str2;//HELLO, world
vector intVec;
vector personVec;
vector> vVec;
初始化
//默认初始化
vector intVec;//初始状态为空,intVec不含任何元素
//在定义对象时指定初始值,类型需要相同
intVec.push_back(10);
vector intVec2(intVec);//把intVec的元素拷贝给intVec2;
vector intVec3 = intVec;//把intVec的元素拷贝给intVec3;
//创建指定数量的元素
vector intVec4(5, 10);//{10,10,10,10,10}
//值初始化
vector intVec5(5);//{0,0,0,0,0}
vector intVec8( 1, 2, 3, 4, 5 );//错误
//列表初始化
vector intVec6{ 5,10};//{5,10}
vector intVec7{ 5 };//{5}
vector intVec9 = {5,10 };
//列表初始化需要注意类型
vector strVec{ "" };//{""}
vector strVec{ 5 };//{"","","","",""}
vector intVec6{ 5,10};//{5,10}
vector intVec7{5};//{5}
for (auto a : intVec7)
{
cout << a << endl;
}
*列表初始化:初始化过程会尽可能地把花括号内的值当成是元素初始值的列表来处理 , 只有在无法执行列表初始化时才会考虑其他初始化方式。
vector::size_type //正确
vector::size_type //错误