在CStringArray中选择5个元素中的3个
Choose 3 element out of 5 in CStringArray?
在这段代码中,keepSelectedFiles有5个文本文件。我想从中选择3个,并添加到另一个数组keepFiles中。计数只是用户的输入。如果用户在文本框中选择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]);
}
}
请帮我怎么做?
以下是实现(性能优化)的方法:
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);
}
让我们"在纸上"做吧:
假设你想从keepSelectedFiles
中获得三个第一个字符串,并将它们添加到keepFiles
中,那么你就可以
- 获取
keepSelectedFiles
中的第一个字符串并添加到keepFiles
- 获取
keepSelectedFiles
中的第二个字符串并添加到keepFiles
- 获取
keepSelectedFiles
中的第三个字符串并添加到keepFiles
仅此而已。
要将其转换为代码,您需要制作一个循环,从0
到2
(包括count
)迭代三次,并将该数字用作keepSelectedFiles
的索引。因此生成的代码看起来像
for (int i = 0; i < count && i < keepSelectedFiles.GetSize(); ++i(
{
keepFiles.Add(keepSelectedFiles[i]);
}
就是这样。
相关文章:
- 给定n个元素的m个集合.在C++中找到出现在最大集合数中的元素
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- 在C++中,如何通过几种类型从元组中选择多个元素
- 删除列表中的第n个元素
- 如何实现 Front() 方法以返回模板化双向链表C++的第一个元素?
- Lower_bound不适用于具有 3 个元素的向量的最后一个元素
- 在链链表中手动插入第五个元素
- 如何在 c++ 中根据第二个元素按降序对列表进行排序
- 对的排序向量 (std::vector<pair<int, int>>) 按对的第一个元素搜索并更新第二个元素值
- 如何创建一个所有行大小不同的 2D 数组,并且用户将指定每行将有多少个元素?
- 高级选择排序 - 在一次迭代中搜索两个元素
- 删除列表 c++ 中的最后 3 个元素
- 为什么这个程序没有打印返回的迭代器的正确第二个元素?
- 打印无序映射的第二个元素,即集合
- C++ queue.front();为什么不从第一个元素开始呢?
- 正确unique_ptr 1 个元素分配数组的声明
- 指向数组基址的指针而不是指向第一个元素的指针有什么优点?
- 静态堆栈函数不会 1) 输入第一个元素 2)添加新元素时识别旧元素
- c++:交换向量中所有元组的第一个和第二个元素
- 从队列中删除第一个元素C++