`
rsljdkt
  • 浏览: 454401 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

C++ STL编程的HelloWorld

阅读更多

参考:《C++ STL编程轻松入门》

http://tech.163.com/05/0613/10/1M4EA0US00091589.html,该文章讲得不错,生动形象并不乏乐趣,三个版本的程序附有层次感,让人倍感程序设计的微妙之美。本人遂将其中演示代码整合了一下,以飨读者。

 

程序功能:从键盘中读取若干整数,直到非整数字符为止;排序,然后输出。

程序设计:给出了三个版本完成该功能,可以选择演示那个版本。

运行平台:VS2010

具体实现说明见代码:

#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
using namespace std;

void ver001();
void ver002();
void ver003();

int main()
{
	int i;
	cout<<"please input version: 1,2 or 3 ?"<<endl;
	cin>>i;
	switch(i)
	{
		cout<<"please input some numbers, ends with non-number!"<<endl;
	case 1:
		cout<<"test of ver001:"<<endl;
		ver001();
		break;
	case 2:
		cout<<"test of ver002:"<<endl;
		ver002();
		break;
	case 3:
		cout<<"test of ver003:"<<endl;
		ver003();
		break;
	}
	system("pause");
}

/*
	第一版:史前时代--钻木取火
	调用C语言函数库,自己实现比较函数
*/
int int_cmp(const void *a,const void *b);
void ver001()
{
	const int max_size = 10;//数组大小
	int nums[max_size];
	int cnt=0;
	while(cin>>nums[cnt++]);
	cnt--;//计算数字个数
	qsort(nums,cnt,sizeof(int),int_cmp );
	for(int it=0; it<cnt; it++)
		cout<<nums[it]<<" ";
	cout<<endl;
}
/*
	整数比较
*/
int int_cmp(const void *a, const void *b)
{
	// a>b,返回1;a==b,返回0;a<b,返回-1;
	return ( *(int *)a > *(int *)b ) ? 1 : ( *(int *)a < *(int *)b ) ? -1 : 0;
}

/*
	第二版:工业时代--组件化大生产
	调用基本的STL,没使用适配器、迭代器等
*/
void ver002()
{
	vector<int>nums;
	int n;
	while(cin>>n)
		nums.push_back(n);
	sort(nums.begin(),nums.end());//排序算法
	for(int i=0; i!=nums.size(); i++)
		cout<<nums[i]<<" ";
	cout<<endl;
}
/*
	第三版:唯物主义的杰作
	大量使用适配器、迭代器
*/
void ver003()
{
	typedef vector<int> int_vector;
	typedef istream_iterator<int> istream_itr;//输入流适配器
	typedef ostream_iterator<int> ostream_itr;//输出流适配器
	typedef back_insert_iterator<int_vector> back_ins_itr;//容器适配器,可以实现在容器末尾插入的功能

	int_vector nums;
	//从cin流适配器中拷贝int数据,直到非整数为止,到尾部可插入的适配器中
	copy(istream_itr(cin),istream_itr(),back_ins_itr(nums));
	sort(nums.begin(),nums.end());
	//拷贝nums的内容到输出流中,以空格分隔
	copy(nums.begin(),nums.end(),ostream_itr(cout," "));
	cout<<endl;
}

 

1
0
分享到:
评论

相关推荐

    C++ STL 编程速查宝典

    《C++ STL编程速查宝典》:深入解析与实用指南 C++ Standard Template Library(STL)是C++编程语言中的一个强大的组件库,它提供了丰富的数据结构、算法以及迭代器,极大地简化了程序员的工作,提高了代码的可读性...

    01 C++书写HelloWorld_通用C++模板_

    "01 C++书写HelloWorld_通用C++模板_"这个标题暗示了我们将探讨如何使用C++编写基础的"Hello, World!"程序,并介绍一个通用的C++模板,它可以帮助初学者快速开始编程。 "Hello, World!"是学习任何编程语言时的第一...

    C++STL学习经典

    char *str = "HelloWorld"; int main() { vector&lt;int&gt; vec1(ar, ar + 10); // 使用数组初始化向量 vector&lt;char&gt; vec2(str, str + strlen(str)); // 使用字符串初始化向量 cout ; // 打印向量 vec1 for (auto...

    c++STL速成.pptx

    在学习C++时,首先接触的通常是“Hello World”程序,它标志着编程之旅的开始。在C++中,我们使用`#include &lt;iostream&gt;`来引入输入输出流,`std::cout`用于输出,而`std::endl`则用于换行。与C语言不同,C++的输入...

    c++应用编程200例

    通过200个实例的学习,你将逐步深入C++的世界,从简单的Hello, World!程序到复杂的类设计,再到实际问题的解决方案。每个例子都是理解C++语言及其应用的关键一步。不断地练习和实践,你将能更好地掌握这个强大的编程...

    C++ /C风格的HelloWorld

    在实际编程中,C++的现代库如STL(Standard Template Library)提供了容器、迭代器、算法等功能,使得代码更简洁、高效。而C语言虽然没有内置的库支持,但有丰富的第三方库,如GLibC、POSIX等,能够实现类似的功能。...

    HelloWorld.zip

    【HelloWorld.zip】是一个针对初学者的C++编程学习资源包,它包含了基本的C++程序,名为"HelloWorld",这是一个经典的入门级程序,旨在帮助新手熟悉编程环境,理解编程概念,以及如何在C++中输出“Hello, World!...

    C++编程实例100

    这份学习资料包含了一系列精心设计的编程任务,旨在让学习者通过亲自动手编写和调试代码,提升对C++的掌握程度,从而摆脱仅仅停留在“Hello, World”级别的基础阶段。 C++是面向对象编程(OOP)的代表语言,其强大...

    【捷训C++ STL视频教程】01-传统C字符串用法

    在C++编程中,STL(Standard Template Library,标准模板库)是一个强大的工具集,它包含了许多高效的数据结构和算法。然而,在深入STL之前,我们需要先了解C++中的传统字符串处理方法,这也是"捷训C++ STL视频教程...

    STL 高级编程(高手必备)

    STL(Standard Template Library,标准模板库)是C++编程语言中的一个重要组成部分,它提供了一系列高效、可重用的数据结构和算法。对于C++程序员来说,掌握STL的高级编程技巧是成为高手的必要条件。以下是一些STL中...

    C++编程入门系列_入门_C++_c++编程入门_源码

    接下来,"c++简单程序设计"引导学习者编写第一个“Hello, World!”程序,掌握基本的语法结构,如变量声明、常量、运算符、流程控制(如if语句、switch语句、for循环和while循环)等。 "函数讲解"部分讲解了如何定义...

    突破Visual C++.NET编程实例五十讲

    实例一讲可能从基础开始,讲解如何设置开发环境,创建第一个“Hello, World!”程序,逐步引导读者熟悉IDE(集成开发环境)的使用。接下来的实例可能涉及变量、数据类型、运算符、流程控制语句等基础知识的运用。 ...

    c++STL总结

    STL 是 C++ 中非常重要的一个组成部分,掌握 STL 的使用对于提高编程效率和代码质量至关重要。以上内容涵盖了 STL 的主要组成部分及其基本用法,希望对初学者有所帮助。在实际开发过程中,应根据具体需求选择合适的...

    C++编程语言核心概念及特性的20个精选实例解析

    内容概要:本文档精选了20个C++编程实例,详细解释了C++的基本语法和高级特性,涵盖从简单的“Hello World”程序到复杂的面向对象编程和泛型编程等多个方面。每个实例都附有代码和简明注释,帮助读者理解和掌握C++的...

    CppStudy_helloworld_

    总之,"CppStudy_helloworld_"的压缩包很可能是一个全面介绍C++编程的教程,适合初学者入门,也包括了进阶话题,如面向对象编程和STL的使用。通过学习这些内容,开发者能够掌握C++的基本技能,并逐步精通这门强大的...

    c-and-cpp-language-learning, C和C++编程语言学习 - 2015级.zip

    从简单的打印“Hello, World!”开始,逐渐挑战更复杂的任务。理解和掌握指针是C语言的关键,而在C++中,理解面向对象编程的概念同样重要。同时,熟悉标准库(如C++的STL)将使你的编程更加高效。 总的来说,这份C和...

    基于C++的编程环境搭建教程

    创建一个新的C++项目,在源代码文件中输入经典"Hello, World!"程序: ```cpp #include int main() { std::cout &lt;&lt; "Hello, World!" ; return 0; } ``` 保存文件,如命名为`hello.cpp`。然后在IDE中构建并运行...

    stl编程手册

    ### STL编程手册知识点详解 #### 一、STL概述 STL(Standard Template Library,标准模板库)是C++标准库的重要组成部分,提供了一系列高效的数据结构和算法,以通用编程的方式实现。它主要包括容器(Containers)...

    C++编程实例详解 pdg格式

    书中很可能包含了一系列逐步展开的案例,从基础的“Hello, World!”程序到复杂的系统应用,帮助读者从理论到实践,全面理解C++编程的精华。通过这样的实践学习,读者不仅可以掌握编程语言的基础,还能培养解决问题和...

    HelloWorld:C ++中的HelloWorld

    编译命令可能是`g++ HelloWorld.cpp -o HelloWorld`,之后通过`./HelloWorld`执行程序。 7. **C++的关键特性**: - 面向对象:C++支持类、对象、继承、封装和多态等面向对象特性。 - 动态内存管理:使用`new`和`...

Global site tag (gtag.js) - Google Analytics