标签: copy

克隆抽象基类(不干涉派生)

我遇到了一个具有挑战性的问题,这个问题一直无法解决 - 希望到现在为止.我正在开发自己的框架,因此试图为用户提供所有代码复杂性的灵活性.

首先,我有一个用户可以实现的抽象基类,显然简化了:

class IStateTransit
{
public:
    bool ConnectionPossible(void) = 0;
}

// A user defines their own class like so
class MyStateTransit : public IStateTransit
{
public:
    bool ConnectionPossible(void){ return true; }
}
Run Code Online (Sandbox Code Playgroud)

接下来,我定义一个工厂类.用户可以注册自己的自定义状态传输对象,稍后通过使用他们选择的字符串标识符来引用它们:

class TransitFactory : public Singleton<TransitFactory>
{
public:
    template<typename T> void RegisterStateTransit(const string& name)
    {
        // If the transit type is not already registered, add it.
        if(transits.find(name) == transits.end())
        {
            transits.insert(pair<string, IStateTransit*>(name, new T()));
        };
    }

    IStateTransit* TransitFactory::GetStateTransit(const string& type) const
    {
        return transits.find(type)->second;
    }; …
Run Code Online (Sandbox Code Playgroud)

c++ abstract-class clone copy

0
推荐指数
1
解决办法
1488
查看次数

Perl - 使用变量引用与使用变量副本推入数组

问题: 为什么我不能将元素推入一个2d数组,该数组位于解析SQL结果集的while循环中?

我需要一些帮助,为什么会发生这种情况.数据存储到二维数组的方式可以通过多种方式完成,但出于我的目的,我需要使用push方法.

这里有一些有用的代码:

my @tt = (0,1,2,3);
my @t;
push (@t,\@tt);
print "[0][0]:".$t[0][0]."\n";
print "[0][1]:".$t[0][1]."\n";
print "[0][2]:".$t[0][2]."\n";
print "[0][3]:".$t[0][3]."\n";
@tt = (4,5,6,7);
push (@t,\@tt);
print "[1][0]:".$t[1][0]."\n";
print "[1][1]:".$t[1][1]."\n";
print "[1][2]:".$t[1][2]."\n";
print "[1][3]:".$t[1][3]."\n";
Run Code Online (Sandbox Code Playgroud)

输出是:

-------------------------
[0][0]:0
[0][1]:1
[0][2]:2
[0][3]:3
[1][0]:4
[1][1]:5
[1][2]:6
[1][3]:7
Run Code Online (Sandbox Code Playgroud)


这是我遇到的问题

我正在运行一些SQL来构建一个X包含列数的结果集.为了将数据存储到我的数组中,我想我可以使用与上面相同的语法:

while (@results=$sth->fetchrow_array())
{
    push(@stu_pool,\@results);
} 
Run Code Online (Sandbox Code Playgroud)

我测试了SQL并检查了结果集,所以问题与此无关.我还回到了长期的方法,这让我得到了我期望的最终结果.而不是使用push(@stu_pool,\@results);我在循环中使用此代码:

$stu_pool[$index][0] = $results[0];
$stu_pool[$index][1] = $results[1];
$stu_pool[$index][2] = $results[2];
$stu_pool[$index][3] = $results[3];
$stu_pool[$index][4] = $results[4];
$stu_pool[$index][5] = $results[5];
$stu_pool[$index][6] = $results[6];
$index++;
Run Code Online (Sandbox Code Playgroud)

那么是什么阻止我将元素推入这个数组呢?它适用于第一个示例,但是当我尝试打印出元素时,它们都是空白的.我正在使用的代码:

print "[0][0]:".$stu_pool[0][0]."\n"; …
Run Code Online (Sandbox Code Playgroud)

arrays perl push copy reference

0
推荐指数
2
解决办法
5894
查看次数

你会建议这种方法来复制字符串吗?

为了获得更高的性能,你是否建议在复制字符串时使用下面的方法,特别是当字符串中有很多字符时,大于12?

 unsigned char one[12]={1,2,3,4,5,6,7,8,9,10,11,12};
 unsigned char two[12];
 unsigned int (& three)[3]=reinterpret_cast<unsigned int (&)[3]>(one);
 unsigned int (& four)[3]=reinterpret_cast<unsigned int (&)[3]>(two);
 for (unsigned int i=0;i<3;i++)
  four[i]=three[i];
Run Code Online (Sandbox Code Playgroud)

c++ string performance copy reference

0
推荐指数
1
解决办法
177
查看次数

Ruby语法错误:文件复制

编写一个小脚本来复制一些文件,但是我得到了错误:

fileops.rb:6:语法错误,意外')'

继承我的代码

require 'ftools'

plays = ['RomeoAndJuliet.txt', 'Hamlet.txt', 'TheTempest.txt', 'TheMerchantofVenice.txt', 'AMidSummerNightsDream.txt']

plays.each do |filename|
  File.new("/clean/_cleaned" + filename, w+)
  File.syscopy(filename, "/clean/_cleaned" + filename)
end
Run Code Online (Sandbox Code Playgroud)

所有括号似乎都应该是它们的位置.有什么建议?

ruby syntax copy file

0
推荐指数
2
解决办法
506
查看次数

我如何知道复印作业何时完成?

我正在使用

File.Copy(source, dest);
Run Code Online (Sandbox Code Playgroud)

我需要知道此复制作业何时完成处理,以便它可以继续执行另一个任务.

在这种特殊情况下我可以使用任何回调函数吗?

c# asp.net copy callback

0
推荐指数
1
解决办法
307
查看次数

将NSMutableArray atIndex(0)复制到字符串变量

我有一个数组,我想在特定的索引提取数组的值,如:

NSString Val1 = Array1[index1];
Run Code Online (Sandbox Code Playgroud)

array是NSMutableArray.

arrays iphone copy objective-c nsmutablearray

0
推荐指数
1
解决办法
142
查看次数

批量查找文件,复制文件,然后从CSV重命名文件

目标:获取与B列同名的图像:

我的Excel文件

我目前将A列中的图像本地存储为JPEGS.我还有一个excel文档,其中包含需要重命名的文件.我想要:

  1. 从文件夹复制图像(即BEVBB48GSY1B.jpg)
  2. 将文件重命名为行文本中的下一个单元格(即BEV-BB48GSY1B.jpg)
  3. 自动移动到下一行以执行相同操作(即BEVBB48GSY1B复制并重命名为BEV-BB48GSY1B27)

关于我需要使用哪种编程或从哪里开始的想法?提前致谢.

csv vbscript excel copy rename

0
推荐指数
1
解决办法
5825
查看次数

创建不可变实例并以惯用方式修改副本

我想根据该实例外部的信息有条件地创建对象实例的副本.副本中的大多数信息将与原始信息相同,但某些信息需要更改.这些信息是在actor之间传递的,所以我需要对象是不可变的,以避免奇怪的并发相关行为.以下玩具代码是我想要帮助的一个简单示例.

如果我有以下代码:

case class Container(condition:String,amount:Int,ID:Long)
Run Code Online (Sandbox Code Playgroud)

我可以做以下事情:

    val a = new Container("Hello",10,1234567890)
    println("a = " + a)
    val b = a.copy(amount = -5)
    println("b = " + b)
    println("amount in b is " + b.amount)
Run Code Online (Sandbox Code Playgroud)

而输出是

a = Container(Hello,10,1234567890)
b = Container(Hello,-5,1234567890)
amount in b is -5
Run Code Online (Sandbox Code Playgroud)

我还可以有条件地创建对象的副本,执行以下操作:

import scala.Math._
val max = 3     
val c = if(abs(b.amount) >= max) b.copy(amount = max,condition="Goodbye") else if(abs(b.amount) < max) b.copy(amount = abs(b.amount))
println("c = " + c)
Run Code Online (Sandbox Code Playgroud)

如果我将b对象中的数量设置为-5,则输出为

c = Container(Goodbye,3,1234567890)
Run Code Online (Sandbox Code Playgroud)

如果我将b对象中的数量设置为-2,则输出为

c …
Run Code Online (Sandbox Code Playgroud)

scala copy class case immutability

0
推荐指数
1
解决办法
249
查看次数

c ++中的数组复制反转

有没有办法通过在c ++中使用while循环以相反的顺序将数组复制到另一种方式?我很确定我知道怎么用for循环做一个,但我很好奇是否有人通过使用while循环知道一种方法

c++ arrays reverse copy

0
推荐指数
1
解决办法
3805
查看次数

将文件(图像)从CacheDir复制到SD卡

我希望能够从Android设备的内部缓存移动或复制文件,并将其放入SD卡的永久存储中.这是我到目前为止:

public void onClickSaveSecret(View v){

    File image = new File(getApplication().getCacheDir() + "/image.png");
    File newImage = new File(Environment.getExternalStorageDirectory() + "/image.png");

    Toast.makeText(this, "Image Saved", 100).show();

}
Run Code Online (Sandbox Code Playgroud)

java android copy file

0
推荐指数
1
解决办法
4181
查看次数