vector 是C++标准模板库中的一个类模板。
练习的源码如下:
#include <vector>
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
class Book
{
friend ostream& operator<<(ostream& o, Book& b);
public:
string name;
float price;
string author;
Book(string name, float price, string author)
{
this->name = name;
this->price = price;
this->author = author;
}
};
ostream& operator<<(ostream& o, Book& b)
{
o<< b.name;
return o;
}
void func(Book& b)
{
cout<<b.name<<endl;
}
void test1()
{
vector<float> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(4);
for(vector<float>::iterator it = v.begin(); it!=v.end(); it++)
{
cout<< *it << endl;
}
}
void test1_1()
{
vector<Book> v;
Book b1("天", 50, "哈哈");
Book b2("人", 40, "嘻嘻");
Book b3("地", 40, "嘿嘿");
v.push_back(b1);
v.push_back(b2);
v.push_back(b3);
//用algorithm 库的for_each 迭代,对每一元素循环调用func
for_each(v.begin(), v.end(), func);
}
void test2()
{
Book b1("天", 50, "哈哈");
Book b2("人", 40, "嘻嘻");
Book b3("地", 40, "嘿嘿");
vector<Book> v;
v.push_back(b1);
v.push_back(b2);
v.push_back(b3);
for(vector<Book>::iterator it = v.begin(); it!=v.end(); it++)
{
cout<< *it << endl;
}
}
void test3()
{
//vector 的元素为指向对象的指针。
Book b1("天", 50, "哈哈");
Book b2("人", 40, "嘻嘻");
Book b3("地", 40, "嘿嘿");
vector<Book*> v;
v.push_back(&b1);
v.push_back(&b2);
v.push_back(&b3);
for(vector<Book*>::iterator it = v.begin(); it!=v.end(); it++)
{
cout<< **it << endl;
cout<< (*it)->author << endl; //-> 优先级比 * 高
}
}
void test4()
{
Book b1("天", 50, "哈哈");
Book b2("地", 40, "嘻嘻");
Book b3("人", 40, "嘿嘿");
vector<Book*> v1;
v1.push_back(&b1);
v1.push_back(&b2);
v1.push_back(&b3);
vector<Book*> v2;
v2.push_back(&b3);
v2.push_back(&b2);
v2.push_back(&b1);
//嵌套vector的用法
vector <vector<Book*>> V;
V.push_back(v1);
V.push_back(v2);
for(vector <vector<Book*>>::iterator it_outter = V.begin(); it_outter!= V.end(); it_outter++)
{
vector<Book*> v = *it_outter;
for(vector<Book*>::iterator it_inner = v.begin(); it_inner!= v.end(); it_inner++)
{
cout<< (*it_inner)->author<<" ";//-> 优先级比 * 高
}
cout<<endl;
}
}
int main()
{
test1_1();
//test3();
test4();
return 0;
}
本文分享自 Python可视化编程机器学习OpenCV 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有