vbs实现c++的vector
代码(待更新):
class Vector
Private length
Private data()
Sub Class_Initialize()
length=
End Sub
'插入元素'
public Function Add (byval x)
length=length+
redim preserve data(length-)
data(length-)=x
End Function
'快速展示'
public Function display()
dim i
dim s
for i= to length-
s=s & cstr(data(i)) & " "
next
msgbox s
End Function
'返回大小'
public Function size()
size= length
End Function
'获取元素'
public Function getAt (byval pos)
if pos< or pos>length- then
getAt=
exit Function
end if
getAt=data(pos)
End Function
'删除元素'
public Function delAt (byval pos)
if pos< or pos>length- then exit Function '注意退出函数的表达式'
dim i
for i=pos to length-
data(i)=data(i+)
next
length=length-
End Function
'插入元素'
public Function insert (byval pos,byval elem)
if pos< or pos>length- then exit Function
dim i
length=length+
redim preserve data(length-)
for i=length- to pos+ step -
data(i)=data(i-)
next
data(pos)=elem
End Function
end class
调用:
set v = new Vector
v.Add
v.Add
v.Add
v.display
v.delAt
v.insert ,
v.display
完整代码:
class Vector
Private length
public data()
Sub Class_Initialize()
length=
End Sub
'插入元素'
public Function Add (byval x)
length=length+
redim preserve data(length-1)
data(length-1)=x
End Function
'快速展示'
public Function display()
dim i
dim s
for i= to length-1
s=s & cstr(data(i)) & " "
next
msgbox s
End Function
'返回大小'
public Function size()
size= length
End Function
'获取元素'
public Function getAt (byval pos)
if pos<0 or pos>length-1 then
getAt=
exit Function
end if
getAt=data(pos)
End Function
'删除元素'
public Function delAt (byval pos)
if pos<0 or pos>length-1 then '注意退出函数的表达式'
dim i
for i=pos to length-2
data(i)=data(i+)
next
length=length-1
redim preserve data(length-1)
End Function
'插入元素'
public Function insert (byval pos,byval elem)
if pos<0 or pos>length-1 then exit Function
dim i
length=length+
redim preserve data(length-1)
for i=length-1 to pos+ step -
data(i)=data(i-1)
next
data(pos)=elem
End Function
end class public Function extendProcess (byval exe,byval arr) '程序名、数组'
dim i
dim cmd
cmd=exe
For i= To ubound(arr)
cmd=cmd & " " & arr(i)
Next
dim objShell '执行命令'
Set objShell = CreateObject("Wscript.Shell")
objShell.Run(cmd)
'读入输出文件val.txt'
Set fs = CreateObject("Scripting.FileSystemObject")
Set file = fs.OpenTextFile("val.txt", , false)
info=file.readall
file.close
set fs=nothing
'处理信息'
extendProcess=split(info) '用空格分隔'
End Function set v = new Vector
v.Add
v.Add
v.Add
v.Add
v.Add
v.Add
v.Add
v.Add
ans=extendProcess("mysort",v.data) '如果函数有返回,就必须要有括号。如果无返回,并且参数数目大于1,不能带括号'
set v2 = new Vector
for each x in ans
v2.Add x
next
v2.display ' dim objShell
' Set objShell = CreateObject("Wscript.Shell")
' objShell.Run("%comspec% /k ipconfig /all")
vbs实现c++的vector的更多相关文章
- vbs与其他语言进行交互编程(外存传参)
vbs没有自定义排序函数.无需自己造轮子,可以用其他语言来完成这个任务(在传递数据比较简单的情况下,例如只传递数组). 首先用5分钟写一个C++排序的代码.命名为“mysort.cpp”: #incl ...
- c++ vector 使用
1. 包含一个头文件: 1 #include <vector> 2. 申明及初始化: std::vector<int> first; // empty vector of in ...
- Vector Tile
Mapbox Vector Tile Specification A specification for encoding tiled vector data. <?XML:NAMESPACE ...
- ArrayList、Vector、LinkedList的区别联系?
1.ArrayList.Vector.LinkedList类都是java.util包中,均为可伸缩数组. 2.ArrayList和Vector底层都是数组实现的,所以,索引数据快,删除.插入数据慢. ...
- ArrayList、Vector、HashMap、HashSet的默认初始容量、加载因子、扩容增量
当底层实现涉及到扩容时,容器或重新分配一段更大的连续内存(如果是离散分配则不需要重新分配,离散分配都是插入新元素时动态分配内存),要将容器原来的数据全部复制到新的内存上,这无疑使效率大大降低. 加载因 ...
- Java中Vector和ArrayList的区别
首先看这两类都实现List接口,而List接口一共有三个实现类,分别是ArrayList.Vector和LinkedList.List用于存放多个元素,能够维护元素的次序,并且允许元素的重复.3个具体 ...
- C++使用vector
#include <iostream> #include <string> #include <vector> using namespace std; void ...
- [LeetCode] Flatten 2D Vector 压平二维向量
Implement an iterator to flatten a 2d vector. For example,Given 2d vector = [ [1,2], [3], [4,5,6] ] ...
- C#调用vbs脚本实现Windows版Siri
最近新加入,把自己一些有意思的小东西分享给大家,我是一个学生,代码写得少,哪里不规范,希望大家见谅. 这事我封装好的一个类,可以直接实例化对象之后,调用"对象.Talk()"方法, ...
随机推荐
- 【洛谷5072】[Ynoi2015] 盼君勿忘(莫队)
点此看题面 大致题意: 一个序列,每次询问一个区间\([l,r]\)并给出一个模数\(p\),求模\(p\)意义下区间\([l,r]\)内所有子序列去重后值的和. 题意转化 原来的题意看起来似乎很棘手 ...
- something just like this---About Me
endl:JX弱校oier,04年生,妹子,2019级高一新生,然后居然不知道该说什么了,尴尬 2019年3月开始接触oi,学的很慢(看起来脑子不太好用) 2019年7月创建了这个博客,在收到“恭喜! ...
- IT兄弟连 Java语法教程 赋值运算符
从本书之前的内容中就一直在使用赋值运算符.现在是正式介绍赋值运算符的时候了.赋值运算符是单个等号”=“.在Java中,赋值运算符的工作方式与所有其它计算机语言相同.它的一般形式如下: var = ex ...
- Java设计模式:Abstract Factory(抽象工厂)模式
概念定义 抽象工厂(Abstract Factory)模式提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类. 抽象工厂模式中,系统的产品有多于一个的产品族(一个产品族里定义多个产品) ...
- 使用zabbix监控linux的io
zabbix自带的监控linux的模板中并没有监控io这项,而实际生产中又需要监控io,如何监控呢. 错误的示例 这里我特意贴出错误的示例出来,是因为我在网上搜如何使用zabbix监控io的文章时,好 ...
- efcore adddbcontext
public static IServiceCollection AddDbContext<TContextService, TContextImplementation>( [NotNu ...
- 用Java实现二叉查找树
二叉查找树的实现 1. 原理 二叉查找树,又称为二叉排序树.二叉搜索树.对于树中每一个节点X,它的左子树中所有项的值小于X中的项,而它的右子树中所有项的值大于X中的项.二叉查找树的平均深度为O(log ...
- CCF模拟试题——最大的矩形 Java
我们先看一下题目: 问题描述 试题编号: 201312-3 试题名称: 最大的矩形 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在横轴上放了n个相邻 ...
- oracle学习笔记(十二) 查询练习(二) 高级查询
高级查询练习 /*--------------------------------------------- 分组查询 -------------------------------------*/ ...
- Python笔记:设计模式之模板方法模式
此模式通过一个模板方法来定义程序的框架或算法,通常模板方法定义在基类中,即原始的模板,然后子类就可以根据不同的需要实现或重写模板方法中的某些算法步骤或者框架的某部分,最后达到使用相同模板实现不同功能的 ...