vector::iteratoritePre; cout<<"eraseVECinwrongway"<<endl; for(itePre=myVec.begin();itePre!=myVec.end();itePre++) { itePre=myVec.erase(itePre); } printVec(myVec); 得出的结果也并不是我想要的清空所有数据 而是只删除了一半的数据,为什么呢? 因为在MSDN中,针对erase的返回值是这么描述...
vector<int> v2(10);//创建一个向量v2,其已开辟10个元素的空间,相当于int v[10]; vector<int> v3(10,5);//创建一个向量v3,其已开辟10个元素的空间并全部赋值为5 vector<int> v4(v3.begin(),v3.end());//创建一个向量v3,其内容为向量v3的内容 vector<int> v5(v4);//创建一个向量v5,其包含...
c.reserve() //保留适当的容量。 c.size() //返回容器中实际数据的个数。 c1.swap(c2) //将c1和c2元素互换。 swap(c1,c2) //同上操作。 vector<Elem> c //创建一个空的vector。 vector<Elem> c1(c2) //复制一个vector。 vector <Elem> c(n) //创建一个vector,含有n个数据,数据均已缺省构造...
include <algorithm> vector<int> vec;vec.push_back(1);vec.push_back(2);vec.push_back(3);vec.push_back(4);vec.push_back(5);vector<int>::iterator ret;ret = std::find(vec.begin(), vec.end(), 15);if(ret == vec.end())cout << "not found" << endl;else cout <<...
#include <vector> #include <iostream> using namespace std; int main(){ vector<int> a; //定义一个int类型的容器 a.push_back(3); //往a的末尾放一个数值3 a.push_back(4); a[0]=4; //更改a的特定位置的值 int len=a.length() //获得a的长度 a.erase(a.begin()+1); //删除a[1]...
返回值为指针的函数定义: 返回指针类型 * 函数名(形參列表); 2:函数指针的赋值: 在赋值时,能够直接将函数指针指向函数名(函数名即代表该段代码的首地址),可是前提是:函数指针和它指向的函数的參数个数以及类型必须一致。函数指针的返回值类型与函数的返回值类型必须一致。
autolam2 = [&,a](){//b,c以引用捕获,a以值捕获。 b=5;c=6;//a =1; a不能赋值 cout<< a<<b<<c<<endl;//输出 1 5 6 }; lam2(); 6, 毋庸质疑,lambda最大的一个优势是在使用STL中的算法 (algorithms) 库时: vector<string> address{'111','222',',333','.org','wwwtest.org'...