在单独的文件中使用函数实现的正确语法是什么?例如:
foo.h中
int Multiply(const int Number);
Run Code Online (Sandbox Code Playgroud)
Foo.cpp中
#include "foo.h"
int Multiply(const int Number)
{
return Number * 2;
}
Run Code Online (Sandbox Code Playgroud)
我看到这用了很多,但是当我尝试它时,我得到一个与缺少main()函数有关的错误.即使我尝试编译工作代码,我也会收到错误.
我正在考虑的场景是基本的:
page = driver.open_page(URL)
linkElement = page.find_elements(XPATH)[0]
linkElement.click()
Run Code Online (Sandbox Code Playgroud)
(我假设我正在使用远程机器 - 即远程驱动程序).服务器如何知道要单击的元素.
更一般地说,我找不到硒2实施的概述.也就是说,一方面讲述故事但不在代码中逐行排列的东西,而是比api更详细的东西.
我正在阅读DynaArrayQueue的实现(当没有足够的元素时,队列的大小加倍)
我对其中的两种方法有一些疑问.
设容量是队列的容量.
getQueueSize()方法
public int getQueueSize()
{
if(front == -1) return 0;
//Here why can't the size by simply [(rear -front +1) %capacity ]
int size = (capacity - front + rear +1) % capacity;
if(size == 0) return capacity;
else return size;
}
Run Code Online (Sandbox Code Playgroud)
在计算尺寸时我们使用的原因
size = (容量 - 前+后+ 1)%容量,而不是简单(后 - 前+1)%容量.?
问题2:
resizeQueue()
这是调整队列大小的方法
private void resizeQueue()
{
int initCapacity = capacity;
capacity *=2;
int[] oldArray = array;
array = new init[this.capacity]; …Run Code Online (Sandbox Code Playgroud) 首先,我过去几周一直在研究Java,所以我还没有太多的经验.
这更像是一个理论问题.我想创建一个简单的列表.
所以首先我创建了一个我指定了一些方法的类.我希望它是通用的,所以我可以使用任何类型.
public interface List<E>
Run Code Online (Sandbox Code Playgroud)
现在我需要实现它,所以我创建了:
public class MyList<E> implements List<E>
Run Code Online (Sandbox Code Playgroud)
现在,我需要两个属性:
private E element;
private MyList<E> next;
Run Code Online (Sandbox Code Playgroud)
一个将保持我的泛型类型,另一个将是下一个元素的链接.首先,我不知道这是否是正确的写作方式.如果我把这个属性留在这个类中,它会正常工作吗?
其次,我一直在考虑是否最好创建另一个类,比如一个Box类,它将包含这两个字段,从而在我的实现过程中使操作更容易.
可能是一个愚蠢的问题,但我正在努力学习并了解实现这一目标的最佳方法.
谢谢你的时间.
我有4节课.一个是驱动程序类,一个是接口和两个子类.这是Interface类:
public interface Speaker {
public void speak();
public void announce(String announcement);
}
Run Code Online (Sandbox Code Playgroud)
这是驱动程序类:
public abstract class SpeakerDriver implements Speaker {
public static void main (String [] args) {
Speaker ref;
Politician poli = new Politician("George Bush");
Lecturer lect = new Lecturer("Professor Cross");
Pastor past = new Pastor ("P.M. Smith");
ref = poli;
ref = lect;
ref = past;
System.out.println();
System.out.println(lect);
System.out.println(past);
}
}
Run Code Online (Sandbox Code Playgroud)
这些是两个子类:
public class Pastor implements Speaker {
protected String announcement;
public Pastor (String name) {
} …Run Code Online (Sandbox Code Playgroud) 不,这不是另一个问题,为什么我们应该在C#中使用属性:)我想知道它们之间的主要区别是什么
private string _name;
public string Name {
get { return _name; }
set { _name = value; }
}
Run Code Online (Sandbox Code Playgroud)
和
public string Name { get; set; }
Run Code Online (Sandbox Code Playgroud)
我知道随着.NET 3.0的引入,您可以使用后者,但我仍然可以找到使用前者的代码片段.
我很想知道它们在性能上的差异(如果有的话)(除了我浪费两倍的空间这一事实),风格以及底层实现的工作原理.
我想知道你的意见是什么,你在代码中使用了哪一个.
谢谢你,快乐的编码!
我做了一个toUpper()的实现.它不起作用100%.
代码:
char* toUpper(char* string)
{
char* sv = string;
while(*sv++ != '\0')
{
if( int(*sv) >= 97 || int(*sv) <= 122) //Only if it's a lower letter
*sv = char( *sv - 32);
}
return string;
}
Run Code Online (Sandbox Code Playgroud)
我知道低位字母的数字从97到122(ASCII格式),高位字母的数字从65到90.低位到高位字母之间正好有32个数字.所以我只是从较低的字符减去32.
我调用此函数的代码:
char h[] = "Whats up?";
cout << toUpper(h) << endl;
Run Code Online (Sandbox Code Playgroud)
我希望程序输出"WHATS UP?" 但相反,我得到了"什么".我做错了什么?
标准子集和问题的一个小变化是我们想要从一组N大小中找到K大小的子集,其总和达到S.
标准的蛮力解决方案产生复杂度O(N ^ K).但是,上面的链接提到了一种蛮力方法的变化,复杂度为O(N ^(K/2)).
维基文章说
已知更好的指数时间算法,其在时间O(2N/2)中运行.该算法任意地将N个元素分成两组N/2.对于这两组中的每一组,它存储其元素的所有2N/2个可能子集的总和的列表.然后对这两个列表中的每一个进行排序.对该步骤使用标准比较排序算法将花费时间O(2N/2N).但是,给定k个元素的和的排序列表,可以通过引入(k + 1)st元素将列表扩展为两个排序列表,并且可以在时间O(2k)中合并这两个排序列表.因此,每个列表可以在时间O(2N/2)中以排序的形式生成.给定两个排序列表,该算法可以检查第一阵列的元素和第二阵列的元素是否在时间O(2N/2)中总和.为此,算法按递减顺序(从最大元素开始)和第二个数组按递增顺序(从最小元素开始)通过第一个数组.只要第一个数组中的当前元素和第二个数组中的当前元素之和大于s,算法就会移动到第一个数组中的下一个元素.如果它小于s,则算法移动到第二个数组中的下一个元素.如果找到两个带有sum的元素,它就会停止.
现在基本上它说如果我们想要找到大小为k的子集,我们计算n个散列大小为K/2的所有子集及其SUM,其中sum是散列中的关键.然后检查是否有两组大小(k)/2)总结到S.
我理解算法,但无法弄清楚,我们怎样才能实现它.散列整数(Sum),其值为列表元组,其中包含实际集合的(K/2)索引.
我们如何在C++中有效地实现它.使用Data sturctures?由于大小(k/2)元素的和,可以并且将是非唯一的,我们不能使用MAP,我们需要多地图,或类似的东西.
自从我开始学习泛型以来,我对实例创建有点困惑,因为我意识到例如,你可以像这样创建一个HashMap,
HashMap hashmap = new HashMap();
Run Code Online (Sandbox Code Playgroud)
但是也,
HashMap<String,String> hashmap = new HashMap<String, String>();
Run Code Online (Sandbox Code Playgroud)
虽然我也可以像这样声明实例hashmap,因为HashMap是从Map Interface实现的
Map<String,String> hashmap = new HashMap<String, String>();
Run Code Online (Sandbox Code Playgroud)
但如果以上是真的,那么我也可以用这种方式创建ArrayList的实例,是不是?
List<String> arraylist = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
而且,如何定制自定义,让我们说类Walk从接口Move实现,所以创建一个Walk的实例对象我可以使用这两个代码,
Walk walk = new Walk();
Move walk = new Walk();
Run Code Online (Sandbox Code Playgroud)
而这些不会引起问题,这两个声明是否相同?实现是启用该功能的关键功能,而类是如何从另一个扩展到类,父类扩展,这是合法的吗?
Father son = new Son();
Run Code Online (Sandbox Code Playgroud) 我有一个具有以下结构的代码
-- synthesis translate_off
... some sort of memory implementation/coding
-- synthesis translate_on
Run Code Online (Sandbox Code Playgroud)
如果删除这段代码会影响我FPGA implementation代码的最终输出,请告诉我.
谢谢,最好的问候,法拉斯
implementation ×10
java ×4
c++ ×3
algorithm ×2
inheritance ×2
c# ×1
coding-style ×1
fpga ×1
function ×1
header ×1
list ×1
parent-child ×1
performance ×1
properties ×1
python ×1
queue ×1
selenium ×1
synthesis ×1
toupper ×1
vhdl ×1
webdriver ×1