- 考list 的比较少 --双端的啦
pair
- 想下,程序是什么样的.
我是我们要带着自己的思考去学习DevangLic..
#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 , 我们要带着自己的思考去学习..
#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
- 想下,程序是什么样的
#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;
}
再增加一点点
#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
- 想下,程序是什么样的
#include <iostream>
#include <list>
#include <algorithm>using namespace std;int main() {// 创建一个list<int>对象myListlist<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';// 在第一个元素的后一个位置加上元素0myList.insert(++myList.begin(), 0);cout<<" after add ----\n";for (const auto &i : myList) {cout<< i << ' ';}cout << '\n';return 0;
}
stack
- 想下,程序是什么样的.
我是, 我们要带着自己的思考去学习 DevangLic..
#include <iostream>
#include <stack>using namespace std;int main() {// 声明一个 stack<int> 类型的变量 mystackstack<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