#includeusing namespace std;struct stu {int num;string x;};bool cmp(stu a,stu b) {return a.num < b.num;}int main() {vectorv;stu l;int h;string name;for (int i = 0; i < 3; i++) {cin >> name>>h;l.x = name;l.num = h;v.push_back(l);}sort(v.begin(), v.end(), cmp);for (auto it = v.begin(); it != v.end(); it++) {cout << (*it).x << (*it).num<
字符串也是可以的啦
3.存放并输出字符串类型数组#includeusing namespace std;int main() {vectorv;for (int i = 0; i < 3; i++) {string s;cin >> s;v.push_back(s);}for (int i = 0; i < 3; i++) {cout << v[i]<<" ";}}
当时在看到输出能用coutv[i] 因为一开始是没有内存 所以必须用来给创造一个内存空间 后来想到用这个函数 先给赋值一个内存
具体代码如下:
#includeusing namespace std;int main() {vectorv;int x; cin >> x;v.resize(x);for (int i = 0; i < 3; i++) {cin >> v[i];}/*for (auto it = v.begin(); it != v.end(); it++) {cout << *it << endl;}*/sort(v.begin(), v.end());for (int i = 0; i < 3; i++) {cout << v[i]<<" ";}}
还有一些赋值的方法比如()函数
有两种方法的赋值
1.(区间)
它输出的数据是这个区间里面的所有数
具体代码如下
文章插图
#includeusing namespace std;int main() {vectorv1(10,100);vectorv2;v2.assign(v1.begin(), v1.end());for (int i = 0; i < 10; i++) {cout << v2[i]<<" ";}}
2.(n,elem)
它给n个数字附上elem类型的数据(这个elem代表的是任意类型的数据的值)
具体代码如下
#includeusing namespace std;int main() {vectorv2;v2.assign(10, 55);for (int i = 0; i < 10; i++) {cout << v2[i]<<" ";}}
它其实跟一开始对v2赋值一样;
#includeusing namespace std;int main() {vectorv2(10,55);for (int i = 0; i < 10; i++) {cout << v2[i]<<" ";}}
对于有几个函数
v.begin() v数组的开头
v.end()v数组的结尾
v.()v的容量
v.size() v的大小
其中v的容量>=v的大小
v.(n)指定v的容量为n
如果变大 那么超出的部分就自动为0;如果变小 那么超出的部分就自己删除 。
v.empty()返回值为bool类型 判断v数组是否为空;
v.(ele)在v函数的尾部插入元素ele
v.();删除最后一个元素
( pos,ele)//在pos的位置插入ele
#includeusing namespace std;int main() {vectorv2(10,55);v2.insert(v2.begin() + 2, 100);for (int i = 0; i <=10; i++) {cout << v2[i]<<" ";}}
在v2的第三位(开头后两位)插入数据100
( pos,n,ele)//在pos位置插入n个ele
#includeusing namespace std;int main() {vectorv2(10,55);v2.insert(v2.begin() + 2,2, 100);for (int i = 0; i <=10; i++) {cout << v2[i]<<" ";}}
erase是删除 也跟上述同理
例子:
#includeusing namespace std;int main() {vectorv2(10,55);v2.insert(v2.begin() + 2,2, 100);for (int i = 0; i <=10; i++) {cout << v2[i]<<" ";}cout << endl;v2.erase(v2.begin(), v2.begin()+2);for (int i = 0; i <= 8; i++) {cout << v2[i] << " ";}}
结果
55 55 100 100 55 55 55 55 55 55 55
100 100 55 55 55 55 55 55 55
【7.17~7.23周记】cout