在 CStringArray 的 5 个元素中选择 3 个元素?

Posted

技术标签:

【中文标题】在 CStringArray 的 5 个元素中选择 3 个元素?【英文标题】:Choose 3 element out of 5 in CStringArray? 【发布时间】:2015-04-15 05:59:10 【问题描述】:

在这段代码中,keepSelectedFiles 有 5 个文本文件。我想选择其中的 3 个并添加到另一个数组 keepFiles 中。 count 只是用户的输入。如果用户在文本框中选择 3,则计数为 3 任意数字等。

for (int i = 0; i < keepSelectedFiles.GetSize(); i++)
        
            for (int i = 0; i < count; i++)
            
                keepFiles.RemoveAt(keepFiles.IsEmpty());
                keepFiles.Add(keepSelectedFiles[i]);
                testbox6.AddString(keepFiles[i]);
            
        

请帮助我如何做到这一点?

【问题讨论】:

【参考方案1】:

这里是实现它的方法(性能优化):

if (count < 0)
  return; // error handling

if (count < keepSelectedFiles.GetSize())

  keepFiles.SetSize(count);
  for (int i=0; i<count; i++)
  
      keepFiles[i] = keepSelectedFiles[i];
  

else

    keepFiles.Copy(keepSelectedFiles);

【讨论】:

先生比你优秀很多。【参考方案2】:

让我们“在纸上”做吧:

假设您想从keepSelectedFiles 获取前三个字符串并将它们添加到keepFiles,然后您会

    获取keepSelectedFiles中的第一个字符串并添加到keepFiles 获取keepSelectedFiles中的第二个字符串并添加到keepFiles 获取keepSelectedFiles中的第三个字符串并添加到keepFiles

就是这样。

要将其转换为代码,您需要创建一个循环,该循环将迭代三 (count) 次,从 02(含)并将该数字用作 keepSelectedFiles 的索引。所以生成的代码看起来像

for (int i = 0; i < count && i < keepSelectedFiles.GetSize(); ++i(

    keepFiles.Add(keepSelectedFiles[i]);

就是这样。

【讨论】:

以上是关于在 CStringArray 的 5 个元素中选择 3 个元素?的主要内容,如果未能解决你的问题,请参考以下文章

在调试器上一一显示 CStringArray 中的元素?

数组中的最大总和,使得可以在 5 个元素中选择最多 2 个连续的元素

CStringArray

Python 实现选择排序

如何在 HTML 文件 (DOM) 中选择和隐藏除前 5 个元素之外的所有元素

将字符串方程转换为 CStringarray - MFC