小编Jim*_*tle的帖子

像这样的for循环被认为是不好的做法吗?

所以对于这个例子,假设我有一个名为original的std :: vector,我想将它分成两半,分成两个不同的向量.假设原始元素数量均匀.

std::vector<int> firstHalf;
std::vector<int> secondHalf;

for (int i = 0, j = original.size()/2; i < original.size() / 2; i++, j++)
{
    firstHalf.push_back(original[i]);
    secondHalf.push_back(original[j]);
}
Run Code Online (Sandbox Code Playgroud)

更明显的方法是使用两个单独的for循环,一个用于填充firstHalf,另一个用于填充secondHalf.

正在编写for循环,就像我认为不好的做法一样吗?从我的测试来看,这个解决方案比两个单独的for循环更有效.

c++ for-loop

7
推荐指数
2
解决办法
780
查看次数

从函数返回动态数组后将其删除

我是 C++ 新手,对内存泄漏很偏执。我将把代码精简为重要的部分:

如果我有一个这样的函数:

char * myString = "Discombobulate";

char * ToUppercase()
{
    int length = strlen(myString);
    char * duplicateString = new char [length];
    strcpy(duplicateString, myString);
    //char arithmetic to turn every letter in duplicateString to uppercase
    return duplicateString;
}
Run Code Online (Sandbox Code Playgroud)

显然,我需要执行删除[]以避免内存泄漏。现在我想知道是否可以在 main() 中进行删除,如下所示:

int main () {
char * result = Upper();

std::cout << result << std::endl;

delete[] result;
}
Run Code Online (Sandbox Code Playgroud)

这能正常工作吗?这样做有什么问题吗?

c++ memory dynamic

2
推荐指数
1
解决办法
1627
查看次数

标签 统计

c++ ×2

dynamic ×1

for-loop ×1

memory ×1