c++ - 试图避免在 for 循环中使用 if-else 语句,但代码似乎有一些错误
问题描述
这个片段工作得很好。
for (int i = 0; i < 1; i++) // for some other purpose
{
// some other code
double** angle = new double* [10]; // for a 2D matrix
for (int j = 0; j < 10; j++)
{
angle[j] = new double [3];
if (j == 0)
angle[j][0] = 2; // focused on the first column for now
else
angle[j][0] = angle[j-1][0]+3;
std::cout << angle[j][0] << std::endl;
}
for (int i = 0; i < 10; i++)
delete[] angle[i];
delete[] angle;
}
我试图不在循环内使用条件语句。如果我用以下行替换它,代码将停止工作。请帮助我理解它。
angle[j][0] = (j == 0) * 2 + (j != 0) * (angle[j-1][0] + 3);
g++ -std=c++11 -o out main.cpp; ./out
在Ubuntu 16.04 LTS上使用
解决方案
您正在尝试使用三元运算符,但语法错误。
做这个:
angle[j][0] = (j == 0) ? 2 : (angle[j-1][0] + 3);
推荐阅读
- java - Android:java方法类型API级别25,如果不调用会导致问题?
- vba - 删除没有特定字符串的列
- chef-infra - 带有节点属性变量的 stub_command
- javascript - 范围滑块不重置颜色值
- angular5 - Angular 5 Material mat-sidenav 切换不起作用
- python - 为什么 twistd 不能从当前工作目录导入模块?
- javascript - ReactJS:仅打开地图项的选定模式弹出窗口
- google-analytics - 谷歌优化重定向测试显示不同的流量即使变体被划分为 50%-50%
- java - 如何更改地图中标记的颜色?
- regex - 如何编写允许单词之间有一个空格的正则表达式?