- 考list 的比较少 --双端的啦
pair

- 想下,程序是什么样的.
我是我们要带着自己的思考去学习DevangLic..
c
#include <iostream>
#include <utility>
#include <string>
using namespace std;
int main() {
// 第一部分:创建并输出两个 pair 对象
pair<int, double> p1(1, 3.14);
pair<char, string> p2('a', "hello");
cout << "第一部分输出:" << endl;
cout << "p1.first: " << p1.first << ", p1.second: " << p1.second << endl;
cout << "p2.first: " << p2.first << ", p2.second: " << p2.second << endl;
// 第二部分:创建并输出三个嵌套的 pair 对象
pair<int, int> p3(1, 2);
pair<int, pair<int, int>> p4(3, make_pair(4, 5));
// 修正 p5 的定义,确保类型正确
pair<pair<int, int>, pair<int, string>> p5(make_pair(6, 7), make_pair(8, "world"));
cout << "\n第二部分输出:" << endl;
cout << "p3.first: " << p3.first << ", p3.second: " << p3.second << endl;
cout << "p4.first: " << p4.first << ", p4.second.first: " << p4.second.first
<< ", p4.second.second: " << p4.second.second << endl;
cout << "p5.first.first: " << p5.first.first << ", p5.first.second: " << p5.first.second
<< ", p5.second.first: " << p5.second.first << ", p5.second.second: " << p5.second.second << endl;
// 修正返回语句
return 0;
}
再来一点

- 想下,程序是什么样的.
我是DevangLic , 我们要带着自己的思考去学习..
c
#include <iostream>
#include <utility>
#include <vector>
using namespace std;
// 定义一个结构体,表示一个人的信息
struct Person {
string name;
int age;
};
int main() {
// 创建一个存储Person对象的向量
vector<Person> people;
people.push_back({"Alice", 25});
people.push_back({"Bob", 30});
people.push_back({"Charlie", 20});
// 创建一个存储pair的向量,每个pair包含一个Person对象和一个评分
vector<pair<Person, int>> scores;
scores.push_back({people[0], 90});
scores.push_back({people[1], 85});
scores.push_back({people[2], 95});
// 遍历pair向量,并输出每个人的姓名、年龄和评分
for (const auto& pair : scores) {
cout << "Name: " << pair.first.name << "\t";
cout << "Age: " << pair.first.age << "\t";
cout << "Score: " << pair.second << endl;
}
return 0;
}
vector

- 想下,程序是什么样的
c
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
// 创建一个空的vector对象
vector<int> numbers;
// 向向量中添加元素
numbers.push_back(5);
numbers.push_back(2);
numbers.push_back(8);
numbers.push_back(5);
numbers.push_back(1);
numbers.push_back(2);
numbers.push_back(9);
numbers.push_back(8);
// 打印向量中的元素
cout << "原始向量中的元素:";
for (const auto& number : numbers) {
cout << number << " ";
}
cout << endl;
// 对向量进行排序
sort(numbers.begin(), numbers.end());
// 打印排序后的向量
cout << "排序后的向量:";
for (const auto& number : numbers) {
cout << number << " ";
}
cout << endl;
// 去除重复元素
numbers.erase(unique(numbers.begin(), numbers.end()), numbers.end());
// 打印去重后的向量
cout << "去重后的向量:";
for (const auto& number : numbers) {
cout << number << " ";
}
cout << endl;
// 向向量中插入元素
numbers.insert(numbers.begin() + 2, 3);
// 打印插入元素后的向量
cout << "插入元素后的向量:";
for (const auto& number : numbers) {
cout << number << " ";
}
cout << endl;
return 0;
}
再增加一点点

c
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
// 初始化向量
vector<int> numbers = {1, 2, 3, 4, 5};
// 打印插入元素后的向量
// 假设插入元素后的向量为 {1, 2, 3}
numbers = {1, 2, 3}; // 为了演示,重新初始化向量
cout << "插入元素后的向量: ";
for (const auto& number : numbers) {
cout << number << " ";
}
cout << endl;
// 删除向量中的某个元素(例如第5个元素,索引为4)
// 注意:当前向量大小为3,删除索引4会导致未定义行为
// 这里假设向量有足够的元素
if (numbers.size() > 4) {
numbers.erase(numbers.begin() + 4);
} else {
cout << "没有第5个元素可以删除。" << endl;
}
// 打印删除元素后的向量
cout << "删除元素后的向量: ";
for (const auto &number : numbers) {
cout << number << " ";
}
cout << endl;
// 检查向量是否为空
if (numbers.empty()) {
cout << "向量为空" << endl;
} else {
cout << "向量不为空" << endl;
}
// 获取向量的大小
cout << "向量的大小: " << numbers.size() << endl;
// 清空向量
numbers.clear();
// 检查向量是否为空
if (numbers.empty()) {
cout << "向量为空" << endl;
} else {
cout << "向量不为空" << endl;
}
return 0;
}
list

- 想下,程序是什么样的
c
#include <iostream>
#include <list>
#include <algorithm>
using namespace std;
int main() {
// 创建一个list<int>对象myList
list<int> myList;
// 向myList尾部添加元素
for (int i = 1; i <= 5; ++i) {
myList.push_back(i);
}
// 输出myList的大小
cout << "链表大小为: " << myList.size() << '\n';
// 从头到尾输出myList中的元素
for (const auto &i : myList) {
cout<< i << ' ';
}
cout << '\n';
// 将myList中的元素反转
reverse(myList.begin(), myList.end());
// 从头到尾输出myList中的元素
for (const auto &i : myList) {
cout<< i << ' ';
}
cout << '\n';
// 在第一个元素的后一个位置加上元素0
myList.insert(++myList.begin(), 0);
cout<<" after add ----\n";
for (const auto &i : myList) {
cout<< i << ' ';
}
cout << '\n';
return 0;
}
stack

- 想下,程序是什么样的.
我是, 我们要带着自己的思考去学习 DevangLic..
c
#include <iostream>
#include <stack>
using namespace std;
int main() {
// 声明一个 stack<int> 类型的变量 mystack
stack<int> mystack;
// 向栈中插入元素
mystack.push(10);
mystack.push(20);
mystack.push(30);
mystack.push(40); //
// 获取栈顶元素
cout << "栈顶元素:" << mystack.top() << endl;
// 弹出栈顶元素
mystack.pop();
// 再次获取栈顶元素
cout << "弹出一个元素后的栈顶元素:" << mystack.top() << endl;
// 检查栈是否为空
if (mystack.empty()) { //
cout << "栈为空" << endl;
} else {
cout << "栈不为空" << endl;
}
// 获取栈的大小
cout << "栈的大小:" << mystack.size() << endl; //
return 0; //
}
未完待续
queue set map