导航:首页 > 编程语言 > stl编程怎么样

stl编程怎么样

发布时间:2022-10-19 02:37:59

‘壹’ 西门子PLC编程STL语言到底是啥意思啊看不懂。求大神指导

STL是PLC编程的一种,和梯形图是不同的形式,而目的都是实现某个控制的功能。这个代码是一系列的条件,从而实现不同的跳转。具体目的是什么,要根据实际的控制目的来解释。

‘贰’ 谁来解释下c++中的STL用来做什么的,推荐点学习资料

关于STL网上资料还是很多的,以下是对初学者较为好理解的:

STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库(C++ Standard Library)中,是ANSI/ISO C++标准中最新的也是极具革命性的一部分。该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。为广大C++程序员们提供了一个可扩展的 应用框架,高度体现了软件的可复用性。这种现象有些类似于Microsoft Visual C++中的MFC(Microsoft Foundation Class Library),或者是Borland C++ Builder中的VCL(Visual Component Library)

从逻辑层次来看,在STL中体现了泛型化程序设计的思想(generic programming),引入了诸多新的名词,比如像需求(requirements),概念(concept),模型(model),容器 (container),算法(algorithmn),迭代子(iterator)等。与OOP(object-oriented programming)中的多态(polymorphism)一样,泛型也是一种软件的复用技术。

从实现层次看,整个STL是以一种类型参数化(type parameterized)的方式实现的,这种方式基于一个在早先C++标准中没有出现的语言特性--模板(template)。如果查阅任何一个版本 的STL源代码,你就会发现,模板作为构成整个STL的基石是一件千真万确的事情。除此之外,还有许多C++的新特性为STL的实现提供了方便。

没有C++语言就没有STL,这么说毫不为过。一般而言,STL作为一个泛 型化的数据结构和算法库,并不牵涉具体语言(当然,在C++里,它被称为STL)。也就是说,如果条件允许,用其他语言也可以实现之。这里所说的条件,主 要是指类似于"模板"这样的语法机制。如果你没有略过前一节内容的话,应该可以看到,Alexander Stepanov在选择C++语言作为实现工具之前,早以采用过多种程序设计语言。但是,为什么最终还是C++幸运的承担了这个历史性任务呢?原因不仅在 于前述那个条件,还在于C++在某些方面所表现出来的优越特性,比如:高效而灵活的指针。但是如果把C++作为一种OOP(Object- Oriented Programming,面向对象程序设计)语言来看待的话(事实上我们一般都是这么认为的,不是吗?),其功能强大的继承机制却没有给STL的实现帮上 多大的忙。在STL的源代码里,并没有太多太复杂的继承关系。继承的思想,甚而面向对象的思想,还不足以实现类似STL这样的泛型库。C++只有在引入了 "模板"之后,才直接导致了STL的诞生。这也正是为什么,用其他比C++更纯的面向对象语言无法实现泛型思想的一个重要原因。当然,事情总是在变化之 中,像Java在这方面,就是一个很好的例子,jdk1.4中已经加入了泛型的特性。

此外,STL对于C++的发展,尤其是模板机制,也起到了促进作用。比如: 模板函数的偏特化(template function partial specialization),它被用于在特定应用场合,为一般模板函数提供一系列特殊化版本。这一特性是继STL被ANSI/ISO C++标准委员会通过之后,在Bjarne和Stepanov共同商讨之下并由Bjarne向委员会提出建议的,最终该项建议被通过。这使得STL中的一 些算法在处理特殊情形时可以选择非一般化的方式,从而保证了执行的效率。STL是最新的C++标准函数库中的一个子集,这个庞大的子集占据了整个库 的大约80%的分量。而作为在实现STL过程中扮演关键角色的模板则充斥了几乎整个C++标准函数库.

在STL还没有降生的"黑暗时代",C++程序员要完成前面所提到的那些功能,需要做很多事情(不过这比起C程序来,似乎好一点),程序大致是如下这个样子的:

#include <stdlib.h>
#include <iostream.h>

int compare(const void *arg1, const void *arg2);

void main(void)
{
const int max_size = 10; // 数组允许元素的最大个数
int num[max_size]; // 整型数组

// 从标准输入设备读入整数,同时累计输入个数,
// 直到输入的是非整型数据为止
int n;
for (n = 0; cin >> num[n]; n ++);

// C标准库中的快速排序(quick-sort)函数
qsort(num, n, sizeof(int), compare);

// 将排序结果输出到标准输出设备
for (int i = 0; i < n; i ++)
cout << num[i] << "\n";
}

// 比较两个数的大小,
// 如果*(int *)arg1比*(int *)arg2小,则返回-1
// 如果*(int *)arg1比*(int *)arg2大,则返回1
// 如果*(int *)arg1等于*(int *)arg2,则返回0
int compare(const void *arg1, const void *arg2)
{
return (*(int *)arg1 < *(int *)arg2) ? -1 :
(*(int *)arg1 > *(int *)arg2) ? 1 : 0;
}

试着使用一下STL,看看效果如何。
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

void main(void)
{
vector<int> num; // STL中的vector容器
int element;

// 从标准输入设备读入整数,
// 直到输入的是非整型数据为止
while (cin >> element)
num.push_back(element);

// STL中的排序算法
sort(num.begin(), num.end());

// 将排序结果输出到标准输出设备
for (int i = 0; i < num.size(); i ++)
cout << num[i] << "\n";
}

这个程序的主要部分改用了STL的部件,看起来要比第一个程序简洁一 点,你已经找不到那个讨厌的compare函数了。这个程序是足够健壮的。

下面我们来看看这个绝版的C++程序。
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>

using namespace std;

void main(void)
{
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;

// STL中的vector容器
int_vector num;

// 从标准输入设备读入整数,
// 直到输入的是非整型数据为止
(istream_itr(cin), istream_itr(), back_ins_itr(num));

// STL中的排序算法
sort(num.begin(), num.end());

// 将排序结果输出到标准输出设备
(num.begin(), num.end(), ostream_itr(cout, "\n"));
}

在这个程序里几乎每行代码都是和STL有关的(除了main和那对花 括号,当然还有注释),并且它包含了STL中几乎所有的各大部件(容器container,迭代器iterator, 算法algorithm, 适配器adaptor)

推荐资料 <<C++ Templates 中文版>>
《泛型编程与-STL中文版》
《C++ STL 中文版》
《Effective.STL中文版》

‘叁’ 我真不知道c++的stl有神吗优势 求指导

可以把STL当成C++的一个强大的算法库。其中包含了很多常用,且高效,且安全的算法。
使用STL可以节约开发人员的开发时间,测试时间,节约成本。
例如STL提供了丰富的容器,Vector,Set,Map等等。
由于使用了模板,这些容器几乎可以应用于各种场合,不需要开发人员自行设计。

‘肆’ PLC编程语言STL是什么

PLC编程语言中的STL是步进触点指令,用在步进梯形图中。

‘伍’ PLC编程语言STL是什么

PLC厂家设计了专门用于编制顺序控制程序的指令和编程元件。 其中,STL为步进梯形指令(Step Ladder Instruction)。 SET:置位,使触点闭合。 RET:复位,使之断开。 使用STL指令时应该注意以下一些问题: 1)与STL触点相连的触点应使用LD或LDI指令,即LD点移到STL触点的右侧,直到出现下一条STL指令或出现RET指令,RET指令使LD点返回左侧母线。各个STL触点驱动的电路一般放在一起,最后一个电路结束时—定要使用RET指令。 2)STL触点可以直接驱动或通过别的触点驱动Y、M、S、T等元件的线圈,STL触点也可以使Y、M、S等元件置位或复位。 3)STL触点断开时,CPU不执行它驱动的电路块,即CPU只执行活动步对应的程序。在没有并行序列时,任何时候只有一个活动步,因此大大缩短了扫描周期。 4)由于CPU只执行活动步对应的电路块,使用STL指令时允许双线圈输出,即同一元件的几个线圈可以分别被不同的STL触点驱动。实际上在一个扫描周期内,同一元件的几条OUT指令中只有一条被执行。 5)STL指令只能用于状态寄存器,在没有并行序列时,一个状态寄存器的STL触点在梯形图中只能出现一次。 6)STL触点驱动的电路块中不能使用MC和MCR指令,但是可以使用CJP和EJP指令。当执行CJP指令跳人某一STL触点驱动的电路块时,不管该STL触点是否为“1”状态,均执行对应的EJP指令之后的电路。 7)与普通的辅助继电器一样,可以对状态寄存器使用LD、LDI、AND、ANI、OR、ORI、SET、RST、OUT等指令,这时状态器触点的画法与普通触点的画法相同。

‘陆’ c++中的stl是怎么回事啊

STL是C++的标准模板库,如iostream, fstream, string等都包含其中。在使用时用头文件把它引进来就可以了。如: #include //引用输入输出流 #include //引用栈模板 #include //引用字符串模板 using namespace std; 一种简单的理解是可以把STL看成是C++的一中“库函数”,能用简单的语句实现很多功能的“库函数”。 另一种简单的理解是可以把STL看成是C++已经做好的“类”(如:string),它提供了很多访问方法。 举个例子:用c++实现字符串"12345"和"67890"连接,并测其长度! 方法一:使用简单语句. #include using namespace std; void main() { char s1={"12345"},s2={"67890"}; int lenth 1,lenth 2,i,slenth; lenth1=strlen(s 1); lenth2=strlen(s 2); for(i=lenth1; i

‘柒’ PLC用STL编程好还是梯形图编程好,哪种更容易掌握

同意xiaofan1719 的说法,如果想使用指针,多条件判断,复杂数学计算,子函数调用等高级编程功能就学STL,如果是电气系统的还是梯形图比较方便。

‘捌’ 怎样学好西门子的STL编程语言

学微机原理和一种汇编语言之后,STL以及S7的程序架构就好理解了。S7CPU的指令系统属于精简指令集的东西。关于程序,逻辑部分用LAD,数据运算及处理用STL,混合编程最好。纯逻辑的部分,用STL并不能带来效率,反而减低可读性。

‘玖’ STL和LAD、FBD、SCL等等编程语言各有什么优势,什么情况用什么语言好呢

http://www.ad.siemens.com.cn/club/bbs/post.aspx?b_id=4&a_id=922742
这不是一两句话能解决的,看看西门子自己技术论坛上的讨论帖吧。

阅读全文

与stl编程怎么样相关的资料

热点内容
除了滴滴app哪里还能用滴滴 浏览:397
截图怎么保存文件夹然后压缩 浏览:8
幻影服务器怎么样 浏览:27
具体哪些广东公司招程序员 浏览:867
嵌入式编译器教程 浏览:304
ssl数据加密传输 浏览:86
51单片机定时器方式2 浏览:330
命令行查看开机时间 浏览:812
python微博复杂网络分析 浏览:550
rf3148编程器 浏览:505
浙江标准网络服务器机柜云主机 浏览:587
设置网络的服务器地址 浏览:600
java图形界面设计 浏览:751
纯前端项目怎么部署到服务器 浏览:538
瓜子脸程序员 浏览:505
如何保证服务器优质 浏览:94
小微信aPP怎么一下找不到了 浏览:299
算法纂要学术价值 浏览:977
程序员你好是什么意思 浏览:803
倩女幽魂老服务器如何玩 浏览:563