std::cout << nVec[i] << std::endl; // 输出元素 其中size()是获取vector元素的个数,另外vector中可使用empty()来返回vector中是否存在元素,如果为空,则返回true,否则返回false。同时,针对nVec[i]是通过下标运算符来获取对应的vector数值的,千万注意,针对于空的vector,万不可通过下标运算符来添加元素,比如:...
1#include <iostream>2#include <vector>34intmain()5{6std::vector<int>v;7for(inti =0; i <100000; ++i) v.push_back(i);8v.resize(3);910std::cout <<"size="<< v.size() <<std::endl;11std::cout <<"capacity="<< v.capacity() <<std::endl;12std::cout <<"---"<<13std:...
vector是检查首尾两个迭代器是否相等。vector底层是一块连续的内存,其迭代器本质上是指向这块内存首尾位置...
再定义一个直接返回vector的函数,函数内部向std::vector中push_back新元素时,采用std::move的方式: std::vector<MyClass> GetMyClassVector(int num) { std::vector<MyClass> result; result.reserve(num); // 提前预留足够的内存空间 for (int i = 0; i < num; ++i) { std::cout << "### " ...
std::vector<int> data = {1,2,3}; std::cout< operator[] operator[]与at功能相同,即用来访问指定的元素,但其与at不同的是:operator[]不进行边界的检查。其函数声明如下所示: referenceoperator[]( size_type pos );//C++20 前constexprreferenceoperator[]( size_type pos );//C++20 起const_refere...
cout<<"vector:myvt, maxsize is "<<m1<<endl; myvt.resize(10);//重设大小cout<<"resize: 10."<<endl;intn1=myvt.capacity();intn2=myvt.size(); cout<<"vector:myvt, capacity is "<<n1<<endl; cout<<"vector:myvt, size is "<<n2<<endl;// 如果为空值则打印 * 号for(it=myvt....
例如,你可以使用 std::vector<std::string> 存储所有要输出的字符串,然后一次性将它们写入 std::cout。 选择合适的硬件和编译器优化:确保你的硬件和编译器设置得当,以便充分利用性能优化。例如,在 GCC 中,你可以使用 -O2 或-O3 选项来启用高级优化。 请注意,这些优化方法可能会根据具体情况和编译器实现产生不...
std::cout << myVector[i] << " ";} return 0;} ```- 在这个示例中,首先创建了一个空的`std::vector`,然后通过`push_back`函数依次添加了三个整数元素。最后,通过循环遍历并输出了这些元素。- 内存管理自动化:- `std::vector`会自动管理内存。当添加元素时,如果当前分配的内存空间不足,它会自动...
std::vector<int> v; // 增 // 在末尾追加元素 v.push_back(1); v.push_back(2); v.push_back(3); // 在指定位置插入元素 v.insert(v.begin() + 1, 4); // v 此时为 {1, 4, 2, 3} // 查 // 访问指定位置的元素 std::cout << "Element at index 2: " << v[2] << std...
std::cout << val << "\t"; std::cout << "\n"; }; std::vector<int> vec1; // 默认无参构造 Print("vec1", vec1); std::allocator<int> alloc2; std::vector<int> vec2(alloc2); // 指定分配器 Print("vec2", vec2);