元素类型是 int 类型vector<int>vec;// 2. 创建一个 vector 动态数组容器// 该容器中 有 3 个元素 , 每个元素值为 int 类型值 1vector<int>vec1(3,1);// 3. 使用 范围构造函数 从 vec1 容器中 复制元素到 vec2 容器vector<int>vec2(
vector<int> vec; for (int i = 0; i < 1000; i++) { vec.emplace_back(i); } cout << "capacity:" << vec.capacity() << " size:" << vec.size() << endl; vector<int>().swap(vec); cout << "capacity:" << vec.capacity() << " size:" << vec.size() << endl; } 打...
vector<int> (i1).swap(i1); 这个语句分为两大部分 vector<int>(i1) 通过拷贝构造函数创建了一个vector<int>类型的匿名对象 ,构造方式就是 变量名() ,()中可以有内容也可以没有,这个匿名对象拥有v的全部数据,但是没有空闲的空间,也就是说,这个匿名对象size = capacity,之后调用该匿名类的swap()方法,与...
vector<T> vec(n):创建包含 n 个默认初始化元素的容器(如 int 初始化为 0)。 vector<T> vec(n, val):创建包含 n 个值为 val 的元素的容器。 示例: std::vector<int> vec1(5); // {0, 0, 0, 0, 0} std::vector<int> vec2(3, 10); // {10, 10, 10} 3. 迭代器范围构造函数...
在C++中,可以使用swap函数来交换两个vector的内容。这个函数会交换两个vector的元素,但不会改变它们的容量。swap函数的用法如下所示: #include <vector> int main() { std::vector<int> vec1 = {1, 2, 3}; std::vector<int> vec2 = {4, 5, 6}; vec1.swap(vec2); // 现在vec1中的元素为 {...
vector<int> vec {1, 2, 3}; 1. 2. 3. 使用数组初始化 :向 vector 容器 构造函数中 传递一个数组 和 数组个数 , 来初始化 vector 容器 // 先声明一个数组 int array[] = {1, 2, 3, 4, 5}; // 将整个数组的值 初始化给 vector 容器 ...
void printVec() { for (auto &v : vec) { std::cout << v << std::endl; } } void swap(Base b) { std::vector<int> tmp = vec; vec = b.getVec(); b.setVec(tmp); } }; int main() { std::vector<int> v1 = {1, 2, 3, 4}; ...
vec.clear():清空内容,但是不释放内存。 vector<int>().swap(vec):清空内容,且释放内存,想得到一个全新的vector。 vec.shrink_to_fit():请求容器降低其capacity和size匹配。 vec.clear(),vec.shrink_to_fit():清空内容,且释放内存。 vector 扩容为什么要以1.5倍或者2倍扩容?
swap函数 1、 void swap( vector &from ); 功能:交换两个vector的内容。 参数:from是另一个vector,将与当前vector互换元素。 返回值:无。 示例代码: #include <iostream>#include <vector>int main() {std::vector<int> vec1 = {1, 2, 3};std::vector<int> vec2 = {4, 5, 6};vec1.swap(vec...
vector<int> vecInt; vecInt.push_back(1); vecInt.push_back(2); ///一.元素访问 /// //会进行越界检查 越界时,会报std::out_of_range的异常 //而[]操作, 会报断言错误, 这个try是抓取不了的 try { cout << (2) << endl; } catch (std::out_of_...