📅  最后修改于: 2023-12-03 15:37:34.788000             🧑  作者: Mango
在C++中,切片矢量是一个动态数组,类似于Python中的列表,但是它可以存储任何类型的数据,而且支持随机访问。切片矢量具有以下优势:
使用切片矢量需要包含头文件:
#include <vector>
切片矢量的创建非常简单,可以使用以下语法:
std::vector<data_type> vec_name;
其中,data_type
是你想要存储在矢量中的数据类型,例如int、double、char等。vec_name
是你自己定义的矢量名称,可以是任何有效的标识符。例如,以下代码创建了一个存储整数的切片矢量:
std::vector<int> my_vector;
切片矢量可以使用多种方式进行初始化,包括:
可以使用以下语法初始化矢量为特定大小:
std::vector<data_type> vec_name(size);
其中,size
是你要初始化矢量的大小。例如,以下代码创建了一个大小为10的矢量:
std::vector<int> my_vector(10);
可以使用以下语法使用初始值列表初始化矢量:
std::vector<data_type> vec_name{val1, val2, ..., valn};
其中,val1
,val2
,......,valn
是您要分配给矢量的值。例如,以下代码创建了一个初始值为{1, 2, 3}的矢量:
std::vector<int> my_vector{1, 2, 3};
可以使用以下语法复制另一个矢量:
std::vector<data_type> vec_name(other_vec_name);
其中,other_vec_name
是你想要复制的另一个矢量名称。例如,以下代码将一个矢量复制到另一个矢量:
std::vector<int> my_vector{1, 2, 3};
std::vector<int> new_vector(my_vector);
还有其他一些方法来初始化矢量,例如使用迭代器、使用函数等。具体内容可以查看C++ STL文档。
切片矢量的元素可以使用以下语法进行访问:
vec_name[index];
其中,vec_name
是你的切片矢量名,index
是你要访问元素的索引,从0开始。例如,以下代码访问了矢量的第一个元素:
std::vector<int> my_vector{1, 2, 3};
int first_element = my_vector[0];
切片矢量还支持使用迭代器进行元素访问和遍历,具体内容可以查看C++ STL文档。
切片矢量支持在任意位置插入和删除元素。以下是一些常用的插入和删除操作:
可以使用以下语法在矢量末尾插入元素:
vec_name.push_back(element);
其中,vec_name
是你的切片矢量名,element
是你要插入的元素。例如,以下代码将一个元素插入到矢量的末尾:
std::vector<int> my_vector{1, 2, 3};
my_vector.push_back(4);
可以使用以下语法在矢量的任意位置插入元素:
vec_name.insert(vec_name.begin() + index, element);
其中,vec_name
是你的切片矢量名,index
是你要插入元素的位置索引,element
是你要插入的元素。例如,以下代码在矢量的第二个位置插入了一个元素:
std::vector<int> my_vector{1, 2, 3};
my_vector.insert(my_vector.begin() + 1, 4);
可以使用以下语法删除矢量的末尾元素:
vec_name.pop_back();
其中,vec_name
是你的切片矢量名。例如,以下代码删除了矢量的末尾元素:
std::vector<int> my_vector{1, 2, 3, 4};
my_vector.pop_back();
可以使用以下语法删除矢量的任意位置元素:
vec_name.erase(vec_name.begin() + index);
其中,vec_name
是你的切片矢量名,index
是你要删除元素的位置索引。例如,以下代码删除了矢量的第二个元素:
std::vector<int> my_vector{1, 2, 3};
my_vector.erase(my_vector.begin() + 1);
切片矢量的大小是指其当前存储的元素数量,可以使用以下语法获得:
vec_name.size();
其中,vec_name
是你的切片矢量名。例如,以下代码输出了矢量的大小:
std::vector<int> my_vector{1, 2, 3};
std::cout << "Size of my_vector is " << my_vector.size() << std::endl;
切片矢量的容量是指当前分配的内存空间可以容纳的元素数量,可以使用以下语法获得:
vec_name.capacity();
其中,vec_name
是你的切片矢量名。例如,以下代码输出了矢量的容量:
std::vector<int> my_vector{1, 2, 3};
std::cout << "Capacity of my_vector is " << my_vector.capacity() << std::endl;
可以使用以下语法遍历切片矢量:
for (auto element : vec_name) {
// do something with element
}
其中,vec_name
是你的切片矢量名,element
是当前遍历到的元素。例如,以下代码遍历了整个矢量:
std::vector<int> my_vector{1, 2, 3};
for (auto element : my_vector) {
std::cout << element << std::endl;
}
这段代码将输出所有元素的值。
切片矢量支持使用STL库中的排序函数对元素进行排序。可以使用以下语法进行排序:
std::sort(vec_name.begin(), vec_name.end());
其中,vec_name
是你的切片矢量名。例如,以下代码对矢量进行升序排序:
std::vector<int> my_vector{3, 1, 2};
std::sort(my_vector.begin(), my_vector.end());
这段代码将把矢量排序为{1, 2, 3}。
可以使用以下语法清空切片矢量:
vec_name.clear();
其中,vec_name
是你的切片矢量名。例如,以下代码清空矢量:
std::vector<int> my_vector{1, 2, 3};
my_vector.clear();
这将清空整个矢量。