标题说明了一切,在 VS2017 中开始了一个新项目,包括<iostream>,然后当我去包括时<Windows.h>(顺便说一下,这是我第一次尝试使用此标题),我收到错误消息:unknown attribute"no_init_all"
知道是什么原因造成的吗?
以下代码应该读取二阶方程的 3 个系数并输出类似于此在线计算器的判别式和解(如果有):https : //calculator.tutorvista.com/math/496/2nd- degree-equation-calculator.html 但由于某种原因,我的计算器在某些情况下似乎可以正确获得一些结果,但在大多数情况下却不是。
#include <iostream>
#include <math.h>
using namespace std;
int main() {
float a, b, c;
cout << "a=" << endl;
cin >> a;
cout << "b=" << endl;
cin >> b;
cout << "c=" << endl;
cin >> c;
float delta = (pow(b, 2)) - (4 * a*c);
float summit = (-b) / (2 * a);
float x1 = (-(b) + (sqrt(delta)) / (2 * a));
float x2 = (-(b) - (sqrt(delta)) / …Run Code Online (Sandbox Code Playgroud) 所以,我一直在努力减少using namespace std,因为我现在有点明白它会在代码中引起什么冲突,即使我不会很快使用别人的代码,我想训练自己使用良好的做法...
但我仍然不喜欢当你在代码上撒上作用域运算符时代码的样子,我遇到的一个建议是使用typedefs自定义外观,我写的是:
#include <iostream>
#include <fstream>
#include <string>
typedef std::cout std_cout;
typedef std::endl std_endl;
typedef std::string std_string;
typedef std::fstream std_fstream;
typedef std::ios std_ios;
Run Code Online (Sandbox Code Playgroud)
现在,当我输入这个时,一切都很好,除了前两行(在第二个代码块中),它们分别给了我variable "std::cout" is not a type name和function template "std::endl" is not a type name错误消息。
现在,如果我typedef用#defines替换所有s ,问题最初似乎已经解决了,但是我最终会在包含这些定义之一的每一行中出现大量语法错误。(此外我知道这#define也同样有问题,using namespace std所以我也试图避免那个)
更复杂的是,第一行(在同一块中)是这里两条有问题的行之一,与我在网上的众多来源中看到的完全相同,所以我不知道是什么对了……
如何正确定义数据类型?
提前致谢。
我一直在搞元胞自动机一段时间,我选择实现它们的方式是通过创建一个 2D 单元格向量,其中每个单元格最初是一个整数向量本身(因为我希望每个单元格存储多个值),后来我将其更改为短无符号整数,然后更改为字符,因为我意识到最小的数据类型足以满足我的需要......
我目前正在寻找提高性能的方法,这让我想到,如果我用字符串替换字符向量会更好地优化吗?
知道整个矩阵总是有一个固定的大小,这意味着 2D 网格的大小以及每个单元格的大小从一开始就分配,并且在程序运行时保持不变:
哪个访问速度更快?调整?复制?还是预制一般操作?
另外,我知道我说过所有东西都有一个固定的大小,但只是为了将来参考,根据我对向量的表面知识,每次 push_back() 一个新元素到其中时都必须重新分配一个向量,是带字符串的情况?