C++ primer 学习笔记——向 量
来源:互联网 发布:四字网络用语 编辑:程序博客网 时间:2024/05/13 03:44
vector 是一个类模板
//模板定义template<class 形参名,class 形参名,…> class 类名 { ... };
定义和初始化
vector<T> v1;vector<T> v2(v1);vector<T> v2=v1;vector<T> v3(n,val);//包含n个重复单位valvector<T> v3(n);//直接初始化:创建指定数量n的元素,初始化为0vector<T> v4{a,b,c}//列表初始化,元素有3个,元素值为a,b,cvector<T> v4={a,b,c...}vector<T> v5(a1,a1+10);//用数组初始化向量
//当初始化使用{}但提供的值无法用来列表初始化vector<string> v1{"hi"};//列表初始化vector<string> v2{10};//有10个默认初始化元素vector<string> v3{10,"hi"};//10个hi
vector操作
vector<T> v;v.push_back(i);//i放到v尾端,添加新元素v.empty();v.size();!= == <= >= > <
vector对象的访问和索引
//3.14#include<iostream>#include<vector>using std::cout;using std::endl;using std::vector;using std::cin;int main(){ vector<int> vint;//向量有高效增长性,没必要设置大小 int num; while (cin >> num)//ctrl+z结束 vint.push_back(num); for (auto i : vint)//也可以用 auto &i : vint cout << i << " "; return 0;}
使用下标运算符
#include<iostream>#include<vector>using std::vector;using std::cin;using std::cout;int main(){//以10分为一个分数段统计成绩数量 vector<int> scores(11); int score; while (cin >> score) { if (score <= 100) ++scores[score / 10]; } for (auto i : scores) cout << i << ' ';}
PS:不能对空vector使用下标索引
课后练习
//3.17#include<iostream>#include<string>#include<vector>using std::string;using std::vector;using std::cout;using std::cin;using std::endl;int main(){ vector<string> vstring; string word; while (cin >> word) { for (auto &c : word)//必须使用引用,才能改变字符串中字符。不使用引用时,c这是个临时参数 { c = toupper(c); } vstring.push_back(word); } for (auto c : vstring) cout << c << endl;}
//3.20#include<iostream>#include<vector>using std::vector;using std::endl;using std::cin;using std::cout;int main(){ vector<int> int_vector; int num; while (cin >> num) { int_vector.push_back(num); } int size = int_vector.size(); for (int i = 0; i < size/2; i++) { cout << int_vector[i] + int_vector[size-i-1] << " "; } if (size % 2 != 0) cout << int_vector[(size-1)/2]; return 0;}
//程序6、整数vector容器A和vector容器B,编程实现将B中包含A的元素删除掉#include<iostream>#include<vector>using namespace std;int main(){ vector<int> A{ 2, 4, 6, 8 }; vector<int> B{ 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int n = 0; for (auto it = A.begin(); it != A.end();++it) { for (auto it2 = B.begin(); it2 != B.end(); ++it2) { if (*it == *it2) { ++n; while (it2 != B.end()-1) { *it2 = *(it2 + 1); ++it2; } //B.erase(it2); } } } while (n--) { B.pop_back(); } for (auto &i : B) { cout << i << " "; } return 0;}
0 0
- C++ primer 学习笔记——向 量
- C++PRIMER学习笔记
- c++primer学习笔记
- c++primer学习笔记
- C++primer学习笔记
- c++primer 学习笔记
- C++Primer 学习笔记
- c++primer学习笔记
- C++Primer学习笔记
- C++PRIMER 学习笔记
- C++Primer学习笔记
- C++Primer学习笔记
- C++Primer学习笔记
- c++primer学习笔记
- C++Primer学习笔记——第一部分 基本语言
- C++Primer学习笔记——初窥输入/输出
- C++primer第五版【学习笔记】——第一章
- C++primer学习笔记——引用和指针
- A23平台开发记录
- oracle gateway11g透明网关连接sql server2005
- stm32f3的i2c使用小结
- 【东方模拟题】伊吹萃香 分层图最短路
- SharePoint 2010 IT Professional--如何创建My Site
- C++ primer 学习笔记——向 量
- 获取当前数据库(mysql)所有表的字段内容
- sqlite案例
- 如何下载谷歌地球高程为SHP格式的等高线
- iOS数据库的使用方法(FMDB)
- jQuery LigerUI 使用教程入门篇
- Xcode7添加动态库
- Android4.4编译错误(ubuntu 12.04 64位)lzop: not found
- jsp 静态include和动态jsp:include的区别