栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++ STL之Vector

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++ STL之Vector

Vector用法

1.构造

	//****vector构造方式
	vector v1;
	vector v2(5);
	vector v3(5, 0);

	//****通过字符串构造
	string str[] = {"ZhangSan","LiSi","WangWu"};
	vector V1(str, str + 3);
	vector::iterator iter0 = V1.begin();
	while (iter0 != V1.end()) {
		cout << *iter0++ <<" ";
	}
	cout << endl;
	//****拷贝构造
	vector V2(V1);
	for (int i = 0; i < 3; i++) {
		cout << V2[i] << " ";
	}
	cout << endl;

2.assign

	int array[] = { 1,2,3,4,5 };
	vector v1;
	v1.assign(array, array + 5);
	copy(v1.begin(), v1.end(), ostream_iterator(cout, " "));
	cout << endl;

	v1.assign(3, 50);
	copy(v1.begin(), v1.end(), ostream_iterator(cout, " "));
	cout << endl;

输出

 3.at

	vector v1(3,0);
	v1[0] = 100;
	v1.at(1) = 200;
	copy(v1.begin(), v1.end(), ostream_iterator(cout, " "));
	cout << endl;

	for (int i = 0; i < 3; i++) {
		cout << v1.at(i)<<" ";
	}

4.push_back&back&front

template 
class Member
{
public:
	Member(T t, D d) :name(t), sal(d) {}
	void print();
private:
	T name;
	D sal;
};
template 
void Member::print()
{
	cout << name << "   " << sal << endl;
}

int main()
{
	typedef Member M;
	vector v;
	v.push_back(M("A",4.6));
	v.push_back(M("B", 4.8));
	vector::iterator iter = v.begin();
	while (iter != v.end()) {
		(iter++)->print();
	}
	//back
	v.back().print();
	//front
	v.front().print();
	return 0;
}

5.insert&pop_back

int array[5];
	//fill(array, array + 5, 1);
	iota(array, array + 5, 1);
	vector v;
	copy(array, array + 5, back_inserter(v));
	Printprint;
	for_each(v.begin(), v.end(), print);
	cout << endl;

	vector::iterator iter;
	iter = v.begin();
	v.insert(iter, 5);
	for_each(v.begin(), v.end(), print);
	cout << endl;

	iter = v.begin() + 5;
	v.insert(iter, array + 2, array + 5);
	for_each(v.begin(), v.end(), print);
	cout << endl;

	//pop_back
	v.pop_back();
	for_each(v.begin(), v.end(), print);

6.rbegin&rend&sort

class ID
{
public:
	ID(string name, int score) :name(name), score(score) {}
	friend bool operator <(const ID& id1, const ID&id2);

	void display()
	{
		cout << name << "    " << score << endl;

	}
private:
	string name;
	int score;
};

bool operator <(const ID& id1, const ID&id2)
{
	return id1.score < id2.score;
}

typedef vector MyVector;

int main()
{
	MyVector vec;
	vec.push_back(ID("A", 500));
	vec.push_back(ID("B", 300));
	vec.push_back(ID("C", 400));

	MyVector::iterator iter;
	for (iter = vec.begin(); iter != vec.end(); iter++) {
		iter->display();
	}
	cout << "排序后:" << endl;
	sort(vec.begin(),vec.end());
	for (iter = vec.begin(); iter != vec.end(); iter++) {
		iter->display();
	}
	cout << "rend:" << endl;
	MyVector::reverse_iterator iter2 = vec.rbegin();
	while (iter2 != vec.rend())
	{
		(iter2++)->display();
	}
	return 0;
}

输出

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/443833.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号