小编Abh*_*dey的帖子

无法理解C ++指针中的输出。(使用指针中的循环)

无法理解意外的输出。指针没有指向第0个索引号。一串

我一直在尝试寻找以下程序输出的原因。循环从i = 0开始,但是在第0个索引编号处没有显示字符。循环从第一个索引编号开始。

#include <conio.h>
#include <iostream.h>
#include <string.h>

int main() 
{
  clrscr();

  int i, n;
  char *x = "Alice";
  n = strlen(x);
  *x = x[n];

  for (i = 0; i <= n; i++) 
  {
    cout << x;
    x++;
  }

  cout << endl << x;
  getch();
}
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:liceicecee 但是我希望输出从'A'开始。

c++ pointers

3
推荐指数
1
解决办法
129
查看次数

std::vector vs std::array vs 普通数组

我举办在线编程竞赛,程序的速度就是一切。随着时间的推移,我遇到了 3 种在 C++ 中使用数组概念的方法。比赛的问题通常需要我们创建一个给定大小的动态数组。所以它只是根据输入一次性创建动态数组,我们不会再次调整数组大小。

标准::向量

矢量看起来最花哨,每个人都喜欢它们。但是几天前,其中一个问题在使用向量时给了我 TIME_LIMIT_EXCEEDED 错误。
当我用普通数组实现相同的逻辑时,程序提交成功。
在研究中,我发现使用该push_back()功能比正常使用需要很长时间arr[i]=x;


标准::数组

我对它的性能了解不多。但它看起来是一种更好的处理数组的方式。


C++ 中的默认数组

我使用动态分配int *arr=new int[given_size];然后正常使用数组。
将数组作为参数传递并不像向量那么简单,但这没什么大不了的。


除此之外,有时我还必须使用 2D 数组,但我总是不确定什么是最快的方法。vector<vector<int>>在某些论坛上被认为很慢,因此使用多维指针也是如此。所以我喜欢使用一个带有 typedef 函数的一维数组来处理它的索引,但是当我必须将一行传递给一个函数时它会变得复杂。

论坛中的大多数答案都基于 OP 试图做的事情,这给出了不同的答案。我想知道的是,使用哪种方法来获得最大速度/效率是最好的和长期的。

c++ arrays vector

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

标签 统计

c++ ×2

arrays ×1

pointers ×1

vector ×1