/*作者:jennie
* 开始时间:
* 结束时间:
* 课程名:黑马c++
* 知识单元:168 02 模板-函数模板基本语法
* 属性:例题
* 具体题目要求:
*交换模板
*/
#include<iostream>
using namespace std;
template<typename T>
void Swap(T& a, T& b) {
T temp = a;
a = b;
b = temp;
}
int main() {
int a = 1, b = 2;
swap(a, b);
cout << a << b;
double c = 1.1, d = 1.2;
swap<double>(c, d);
cout << c << d;
return 0;
}
/*作者:jennie
* 开始时间:2022年03月26日 17:02:01 星期六
* 结束时间:2022年03月26日 17:12:21 星期六
* 课程名:黑马c++
* 知识单元:187 21 STL初识-vector存放自定义数据类型
* 属性:例题
* 具体题目要求:
*push_back 存地址 迭代器vector<Person> ::iterator
*/
#include<iostream>
#include<vector>
using namespace std;
class Person {
public:
Person(string name, int age)
:m_Name(name), m_Age(age){};
string getName() {
return m_Name;
}
int getAge() {
return m_Age;
}
private:
string m_Name;
int m_Age;
};
void test() {
vector<Person> v;
Person p1("aaa", 18);
Person p2("bbb", 17);
Person p3("ccc", 21);
Person p4("ddd", 19);
v.push_back(p1);
v.push_back(p2);
v.push_back(p3);
v.push_back(p4);
for (vector<Person>::iterator i = v.begin(); i !=v.end(); i++)
{
cout << "1 名:" << (*i).getName() << " 岁:" << (*i).getAge() << endl;
}
}
void test2() {
vector<Person*> v;
Person p1("aaa", 18);
Person p2("bbb", 17);
Person p3("ccc", 21);
Person p4("ddd", 19);
v.push_back(&p1);
v.push_back(&p2);
v.push_back(&p3);
v.push_back(&p4);
for (vector<Person*>::iterator i = v.begin(); i != v.end(); i++)
{
cout << "2 名:" << (*i)->getName() << " 岁:" << (*i)->getAge() << endl;
}
}
int main() {
test2();
return 0;
}
/*作者:jennie
* 开始时间:2022年03月26日 17:13:06 星期六
* 结束时间:2022年03月26日 17:20:13 星期六 (7)
* 课程名:黑马c++
* 知识单元:188 22 STL初识-容器嵌套容器
* 属性:
* 具体题目要求:
*
*/
#include<iostream>
#include<vector>
using namespace std;
void test() {
vector<vector<int>> v;
vector<int> v1;
vector<int> v2;
vector<int> v3;
vector<int> v4;
for (int i = 0; i < 4; i++)
{
v1.push_back(i+1);
v2.push_back(i+2);
v3.push_back(i+3);
v4.push_back(i+4);
}
v.push_back(v1);
v.push_back(v2);
v.push_back(v3);
v.push_back(v4);
for (vector<vector<int>>::iterator i = v.begin(); i != v.end(); i++)
{
for (vector<int>::iterator vi = (*i).begin(); vi!=(*i).end(); vi++)
{
cout << (*vi) << " ";
}
cout << endl;
}
}
int main() {
test();
return 0;
}
/*作者:jennie
* 开始时间:2022年03月26日 17:22:40 星期六
* 结束时间:2022年03月26日 19:08:19 星期六
* 课程名:黑马c++
* 知识单元:189 23 string容器-构造函数
* 属性:
* 具体题目要求:
*空 char* string n char
*/
#include<iostream>
using namespace std;
int main() {
string s1;
cout << s1 << endl;
const char* str = "hello";
string s2(str);
cout << s2 << endl;
string s = "12345", s3(s);
cout << s3 << endl;
string s4(6,'0');
cout << s4 << endl;
string s5, s6, s7, s8;
s5.assign("hello world");
s6.assign("hello world",5);
s7.assign(s3);
s8.assign(5,'0');
cout << s5 << endl;
cout << s6 << endl;
cout << s7 << endl;
cout << s8 << endl;
s6 += " world";
cout << s6<<endl;
s6 += s8;
cout << s6 << endl;
s6.append(" love ");
cout << s6 << endl;
s6.append(s5,6,5);
cout << s6 << endl;
s6.append("12345", 3);
cout << s6 << endl;
return 0;
}