标签:stream end 赋值 rect 迭代器 ++ front 元素 删除
vector<int> a = {1,2,3,4,5,6,7}
vector<int> a(10, 2);
vector<int> a(100);
vector<int> b = {1,2,3,4,5};
vector<int> a(b);
vector<int> b = {1,2,3,4,5};
vector<int> a(b.begin(),b.begin+3);
int b[7]={1,2,3,4,5,9,8};
vector<int> a(b,b+3);
函数名 | 作用 |
---|---|
a.assign(b.begin(), b.begin()+3); | b为向量,将b的0~2个元素构成的向量赋给a |
a.assign(4,2); | a只含4个元素,且每个元素为2 |
a.back(); | 返回a的最后一个元素 |
a.front(); | 返回a的第一个元素 |
a.at(); | 传回索引idx所指的数据,如果idx越界,抛出out_of_range。 |
a.clear(); | 清空a中的元素 |
a.empty(); | 判断a是否为空,空则返回ture,不空则返回false |
a.pop_back(); | 删除a向量的最后一个元素 |
a.erase(a.begin()+1,a.begin()+3); | 删除a中第1个(从第0个算起)到第2个元素,也就是说删除的元素从a.begin()+1算起 (包括它)一直到a.begin()+3(不包括它) |
c.erase(pos); | 删除pos位置的数据,传回下一个数据的位置。 |
a.push_back(5); | 在a的最后一个向量后插入一个元素,其值为5 |
a.insert(a.begin()+1,5); | 在a的第1个元素(从第0个算起)的位置插入数值5,如a为1,2,3,4,插入元素后为1,5,2,3,4 |
a.insert(a.begin()+1,3,5); | 在a的第1个元素(从第0个算起)的位置插入3个数,其值都为5 |
a.insert(a.begin()+1,b+3,b+6); | b为数组,在a的第1个元素(从第0个算起)的位置插入b的第3个元素到第5个元素(不包括b+6), 如b为1,2,3,4,5,9,8 ,插入元素后为1,4,5,9,2,3,4,5,9,8 |
a.size(); | 返回a中元素的个数; |
a.capacity(); | 返回a在内存中总共可以容纳的元素个数 |
a.max_size() | 返回a最多能开到多大 |
a.resize(10); | 将a的现有元素个数调至10个,多则删,少则补,其值随机 |
a.resize(10,2); | 将a的现有元素个数调至10个,多则删,少则补,其值为2 |
a.swap(b); | b为向量,将a中的元素和b中的元素进行整体性交换 |
c.rbegin() | 传回一个逆向队列的第一个数据的迭代器,就是最后一个元素 |
c.rend() | 传回一个逆向队列的最后一个数据的下一个位置迭代器,就是队首前面的元素,越界了 |
a.reverse() | 保留适当容量,有几个元素容量就是几 |
a.max_size() | 返回a最多能开到多大 |
int a[6]={1,2,3,4,5,6};
vector<int> b(a,a+4);
for(int i=0;i<=b.size()-1;i++)
cout<<b[i]<<" ";
int a[6]={1,2,3,4,5,6};
vector<int> b(a,a+4);
for(vector<int>::iterator it=b.begin();it!=b.end();it++)
cout<<*it<<" ";
sort(a.begin(),a.end());
reverse(a.begin(),a.end());
copy(a.begin(),a.end(),b.begin()+1);
find(a.begin(),a.end(),10);
vector<int> a = {1,2,3,4,5,6,7,8};
for (int i = 0; i < a.size();i++)
{
cout << a.at(i) << endl;
}
for (int i = 0; i < a.size();i++)
{
cout << a.at(i) << endl;
}
a.begin(),a.end()会返回iterator或const_iterator,具体取决于调用对象是什么。
a.cbegin()和a.cend()是C++ 11特性,会返回一个const的迭代器,此迭代器不能用于修改他指向的元素。
vector<int> a = {1,2,3,4,5,6,7,8};
for (vector<int>::const_iterator iter = a.cbegin(); iter != valList.cend(); iter++)
{
cout << (*iter) << endl;
}
for (auto val : valList)
{
cout << val << endl;
}
结构体要定义为全局的
#include<stdio.h>
#include<algorithm>
#include<vector>
#include<iostream>
using namespace std;
typedef struct rect
{
int id;
int length;
int width;
//对于向量元素是结构体的,可在结构体内部定义比较函数,下面按照id,length,width升序排序。
bool operator< (const rect &a) const
{
if(id!=a.id)
return id<a.id;
else
{
if(length!=a.length)
return length<a.length;
else
return width<a.width;
}
}
}Rect;
int main()
{
vector<Rect> vec;
Rect rect;
rect.id=1;
rect.length=2;
rect.width=3;
vec.push_back(rect);
vector<Rect>::iterator it=vec.begin();
cout<<(*it).id<<‘ ‘<<(*it).length<<‘ ‘<<(*it).width<<endl;
return 0;
}
标签:stream end 赋值 rect 迭代器 ++ front 元素 删除
原文地址:https://www.cnblogs.com/ApStar/p/13958183.html