1 向量
1.1 定义
vector<typename> name //typename:向量元素类型 name:向量名字
int main() {
int myArray[] = {1, 2, 3, 4, 5};
vector<int> myVector1;
vector<int> myVector2(myArray, myArray + 5);
vector<int> myVector3(5, 2);
vector<int> myVector4(myVector2);
vector<int> myVector5(myVector4.begin(), myVector4.begin() + 3);
print(myVector1, 1); //print函数为自定义输出函数
print(myVector2, 2);
print(myVector3, 3);
print(myVector4, 4);
print(myVector5, 5);
return 0;
}
输出结果:
vector1:
vector2: 1 2 3 4 5
vector3: 2 2 2 2 2
vector4: 1 2 3 4 5
vector5: 1 2 3
1.2 常用函数
int myArray[] = {1, 2, 3, 4, 5};
vector<int> myVector(myArray, myArray + 5);
int n = myVector.size();
myVector.pop_back();
myVector.push_back(6);
myVector.insert(myVector.begin() + 1, 9);
myVector.insert(myVector.begin(), 3, 7);
myVector.insert(myVector.begin(), myArray, myArray + 2);
myVector.erase(myVector.begin() + 6);
myVector.erase(myVector.begin() + 1, myVector.begin() + 3);
myVector.clear();
n = 5;
1 2 3 4
1 2 3 4 6
1 9 2 3 4 6
7 7 7 1 9 2 3 4 6
1 2 7 7 7 1 9 2 3 4 6
1 2 7 7 7 1 2 3 4 6
1 7 7 1 2 3 4 6
2 队列
2.1 定义
#include <queue>
queue<tupename> name
2.2 操作
int main() {
queue<int> myQueue;
for (int i = 0; i < 10; i++) {
myQueue.push(i); //入队
}
int sum = 0;
while (!myQueue.empty()) { //判空
sum += myQueue.front(); //访问队首
myQueue.pop(); //出队
}
printf("%d\n", sum); //结果为45
return 0;
}
3 栈
3.1 定义
#include <stack>
stack<typename> name;
3.2 操作
int main() {
stack<int> myStack;
cout << "入栈顺序:";
for (int i = 0; i < 10; i++) {
myStack.push(i); //入栈
cout << myStack.top() << ' ';
}
cout << endl << "出栈顺序:";
int sum = 0;
while (!myStack.empty()) {
cout << myStack.top() << ' ';
sum += myStack.top();
myStack.pop();
}
cout << endl << sum << endl;
return 0;
}
运行结果:
入栈顺序:0 1 2 3 4 5 6 7 8 9
出栈顺序:9 8 7 6 5 4 3 2 1 0
45
set类
.end返回末尾迭代器,而不是最后一个元素,如果要访问最后一个元素需要使用 *–.end