有效存储多达2048个字符的数组?

时间:2014-04-06 01:47:33

标签: c++ c arrays string memory-management

从其他来源获取输入;填充最多2048个字符的字符串。

填充和比较此字符串的最有效方法是什么? - 我希望能够轻松地附加到字符串。

以下是我的三次尝试:

C风格版

#include <cstdio>
#include <cstring>

int main(void) {
    char foo[2048];
    foo[0]='a', foo[1]='b', foo[2]='c', foo[3]='\0';  // E.g.: taken from u-input
    puts(strcmp(foo, "bar")? "false": "true");
}

C ++ - 样式版本0

#include <iostream>

int main() {
    std::string foo;
    foo.reserve(2048);
    foo += "abc";  // E.g.: taken from user-input
    std::cout << std::boolalpha << (foo=="bar");
}

C ++ - 样式版本1

#include <iostream>

int main() {
    std::string foo;
    foo += "abc";  // E.g.: taken from user-input
    std::cout << std::boolalpha << (foo=="bar");
}

1 个答案:

答案 0 :(得分:1)

最有效的取决于您的优化目标 一些共同的标准:

  1. 节目速度
  2. 程序大小
  3. 工作集大小
  4. 代码大小
  5. 程序员时间
  6. 安全
  7. 毫无疑问的1和2的国王,在你的例子中可能也是3,是C风格 对于4和5,C ++风格1.
    第6点可能是C ++风格。

    仍然需要强调这些目标的适当组合,这对于C ++选项0来说是非常有用的。