2012-03-28 123 views
-2
if(temp>final_hash_index_one) 
      { 
       string *tmp = new string[temp+1]; 
       std::copy(level_two, tmp, final_hash_index_one+1); 
       delete [] level_two; 
       level_two = tmp; 
      } 

此方法不起作用,并给我一个“无效空指针”的异常!从一个字符串指针数组复制字符串到另一个

string *tmp = new string[some_size]; 
string *level_two = new string[some_size];  

如何将内容从level_two复制到tmp?在字符串1的情况下;串二。我们可以通过循环复制字符串。但在这种情况下呢?

+4

这些是'的std :: string'?你为什么要做一个指针?你为什么不使用'std :: vector '? – birryree 2012-03-28 19:38:23

+0

没有使用矢量现在,这就是为什么使用字符串!我正在做完美的哈希,所以我正在处理动态字符串指针数组! – 2012-03-28 19:40:32

+0

level_two在不同位置具有字符串,特别是索引。我想动态地改变level_two数组的大小。为此,我想复制内容到新的大小的tmp地方另一个字符串在temp中的位置,然后重新分配level_two的新大小,然后将内容从tmp复制到level_two! – 2012-03-28 19:43:19

回答

3

首先,STL副本需要的

OutputIterator copy (InputIterator first, InputIterator last, OutputIterator result); 

形式所以你看到的结果是最后一个参数。其次,如果你进入STL(这非常好!),你不再需要数组了。字符串中使用的载体:

vector<string> tmp(some_size); 
vector<string> level_two(some_size); 

从level_to TMP的复制很简单:

tmp = level_two; // (!) 
+0

任何方式通过字符串指针数组来执行此操作? – 2012-03-28 19:56:13

+0

您可以使用循环,字符串字符串复制。但是,载体更容易处理。 – 2012-03-28 20:04:00

+0

好的。它会是一个嵌套循环?这正是这个想知道的!我怎样才能做到这一点!我现在问我的朋友和我,我们来了相同的论点,它会通过字符串复制一个字符串!尝试了一些东西,但给出例外!如何通过循环做到这一点? – 2012-03-28 20:08:25

相关问题