由于本章节涉及很多指针和数组的知识,笔者之前的有过c语言基础,所以这部分知识不做重复的笔记。
//正常情况下
std::cout << "Hello world!" << endl;
当使用了using声明之后可以不写std
#include
using std::cout; //using 声明
int main()
{
cout << "Hello world!" << endl; //省略了std::
return 0;
}
string s1; //默认初始化,s1是一个空串
string s2(s1); //通过拷贝构造函数,s2是s1的副本
string s2 = s1; //等价上面
string s3("Hello world!");
string s4 = "Hello world!";
string s5(n, 'c'); //在string里面放入n个'c'
int main()
{
string line;
while(getline(cin, line))
{
//读取一整行并输出
cout << line << endl;
}
return 0;
}
int main()
{
string str;
if(str.empty())
{
cout << "str是空串" << endl;
}
else
{
cout << "str不是空串" << endl;
}
return 0;
}
int main()
{
string str("Hello world!");
//通过冒号隔开,左边是循环变量,右边是要循环遍历的东西
for(auto& i : str)
{
cout << i << " ";
}
cout << endl;
return 0;
}
vector<int> ivec{ 1,2,3,4,5 }; //将1 2 3 4 5这五个元素放入vector容器中
int main()
{
vector<int> ivec;
for(int i = 0;i < 5;i++)
{
ivec.push_back(i); //将i添加进vector中
}
return 0;
}
int main()
{
vector<int> ivec;
for(int i = 0;i < 5;i++)
{
ivec.push_back(i); //将i添加进vector中
}
ivec.pop_back();
//到这里此时ivec中只有0 1 2 3四个元素
return 0;
}
vector<int> ivec(10,42); //ivec中放入了10个42
vector<string> svec(10, "hi"); //svec中放入了10个"hi"
vector<int> ivec{10, 20}; //注意这时候ivec中只有两个元素,10和20
vector<string> svec{10, "hi"}; //而这里还是放入了10个"hi"
int main()
{
vector<int> ivec(10, 1);
for (vector<int>::iterator it; it != ivec.end(); it++)
{
cout << *it << " ";
}
return 0;
}
注意上面的循环,中间的添加判断用的是不等于,这是因为有些迭代器可能不支持大于小于的比较,所以这里统一用不等于不做区分。
//begin与end函数演示
int main()
{
int nums[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int* beg = begin(nums); //begin返回了首元素的地址
int* last = end(nums); //last的地址是元素9往后加一对应的地址
//像使用迭代器一样使用
while(beg != last)
{
cout << *beg << " ";
beg++;
}
return 0;
}
第三章完