在 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
) 次,从 0
到 2
(含)并将该数字用作 keepSelectedFiles
的索引。所以生成的代码看起来像
for (int i = 0; i < count && i < keepSelectedFiles.GetSize(); ++i(
keepFiles.Add(keepSelectedFiles[i]);
就是这样。
【讨论】:
以上是关于在 CStringArray 的 5 个元素中选择 3 个元素?的主要内容,如果未能解决你的问题,请参考以下文章
数组中的最大总和,使得可以在 5 个元素中选择最多 2 个连续的元素