STL初识
容器算法迭代器初识
vector存放内置数据类型
#include<vector>
#include<algorithm>void myPrint(int x)
{cout << x << ' ';
}void test01()
{//创建vector容器vector<int>v;//向容器中插入数据v.push_back(10);v.push_back(20);v.push_back(30);v.push_back(40);//通过迭代器访问数据for (vector<int>::iterator it = v.begin(); it < v.end(); it++){cout << *it << endl;}//通过算法访问for_each(v.begin(), v.end(), myPrint);
}
vector存放自定义的数据类型
//vector存放自定义类型
class Person
{
public:Person(string name, int age){this->m_Age = age;this->m_Name = name;}void showPerson(){cout << this->m_Name << ' ' << this->m_Age << endl;}string m_Name;int m_Age;
};void myPrint(Person x)
{x.showPerson();
}void test01()
{//创建vector容器vector<Person>v;//创建对象Person p1("aaa", 10);Person p2("bbb", 20);Person p3("ccc", 30);Person p4("ddd", 40);Person p5("eee", 50);//向容器中插入数据v.push_back(p1);v.push_back(p2);v.push_back(p3);v.push_back(p4);v.push_back(p5);//通过迭代器访问数据for (vector<Person>::iterator it = v.begin(); it < v.end(); it++){it->showPerson();}//通过算法访问for_each(v.begin(), v.end(), myPrint);
}
string容器
string的构造函数
示例代码
//1.默认构造
string s1;//2.利用c语言的字符串初始化
const char* str = "hello,word";
string s2(str);
cout << s2 << endl;//3.拷贝构造
string s3(s2);
cout << s3 << endl;//4.字符重复,初始化字符串
string s4(10, 'a');
cout << s4 << endl;
string的赋值操作
void test01()
{const char* ch = "hello world";//1.将c语言的字符串给string,以下两者等价string st1;st1 = "hello world";st1 = ch;//2.把字符串赋值string st2;st2 = st1;cout << st2 << endl;//3.将单个字符赋值string st3;st3 = 'a';cout << st3 << endl;//4.通过assign赋常量string st4;st4.assign("hello,C++");cout << st4 << endl;//4.通过assign,把前n个字符赋值string st5;st5.assign("hello C++", 6);cout << st5 << endl;//5.通过assign把字符串对象给string st6;st6 = st5;cout << st6 << endl;//6.通过assign把n个相同字符赋个stringstring st7;st7.assign(10, 'a');cout << st7 << endl;
}
string的拼接操作
void test01()
{const char* ch = "hello world,";string st;//1.重载+=符号,后面可以跟常量字符串/字符数组,字符,以及字符串st += ch;st += " I am ";st += 'a'; st += ' ';string st2 = "Chinese";st += st2;cout << st << endl;//2.采用append函数,可以跟常量字符串/字符数组,数组的前n个字符,字符串以及从特定位置的n个字符开始拼接string s;s.append(ch);s.append(" I am ");s.append("abcde", 1);string s2 = "I am a Chinese";s.append(s2,6,8);cout << s << endl;}