- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
代码使用 Visual Studio 编译并按预期运行。我知道永远不能保证它会在其他地方编译/运行,但我不明白为什么在这种情况下。也许有人可以帮助澄清? g++ 编译器在第 45 行给出了错误,其中声明了 RGB 类型的 vector 的 vector :
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
using namespace std;
/* The following color method uses the provided formula to determine
the float value of each (i,j) coordinate passed as parameters. */
float color (int i, int j)
{
float col = float (((i & 0x08) == 0) ^ ((j & 0x08) == 0));
return col;
}
int main()
{
// The provided RGB object that stores each rgb value:
struct RGB
{
float r;
float g;
float b;
};
int w;
int h;
string filename;
float c; // to store the result from the color method.
cin >> w >> h >> filename;
// A vector of vectors to represent the 2D array:
vector< vector<RGB> > rgb(h, vector<RGB>(w));
for (int i = 0; i < h; i++)
for (int j = 0; j < w; j++)
{
c = color(i, j);
rgb[i][j].r = c;
rgb[i][j].g = c;
rgb[i][j].b = c;
}
ofstream ppmfile;
ppmfile.open (filename);
ppmfile << "P3\n" << w << " " << h << endl;
ppmfile << "255\n";
for (int i = 0; i < h; i++)
{
// The following loop uses integer multiplication to output to the ppm
// file the rgb values converted to integers on the 0-255 scale.
for (int j = 0; j < w; j++)
{
ppmfile << rgb[i][j].r * 255 << " ";
ppmfile << rgb[i][j].g * 255 << " ";
ppmfile << rgb[i][j].b * 255;
if (j != (w-1))
ppmfile << " ";
}
ppmfile << endl;
}
return 0;
}
这是在 g++ 中弹出的完整错误列表:
hw1.cxx: In function 'int main()':
hw1.cxx:45: error: template argument for 'template<class _Alloc> class std::allocator' uses local type 'main()::RGB'
hw1.cxx:45: error: trying to instantiate 'template<class _Alloc> class std::allocator'
hw1.cxx:45: error: template argument 2 is invalid
hw1.cxx:45: error: template argument 1 is invalid
hw1.cxx:45: error: template argument 2 is invalid
hw1.cxx:45: error: invalid type in declaration before '(' token
hw1.cxx:45: error: template argument for 'template<class _Alloc> class std::allocator' uses local type 'main()::RGB'
hw1.cxx:45: error: trying to instantiate 'template<class _Alloc> class std::allocator'
hw1.cxx:45: error: template argument 2 is invalid
hw1.cxx:45: error: initializer expression list treated as compound expression
hw1.cxx:51: error: invalid types 'int[int]' for array subscript
hw1.cxx:52: error: invalid types 'int[int]' for array subscript
hw1.cxx:53: error: invalid types 'int[int]' for array subscript
hw1.cxx:57: error: no matching function for call to 'std::basic_ofstream<char, std::char_traits<char> >::open(std::string&)'
/usr/local/gcc443/lib/gcc/i386-pc-solaris2.10/4.4.3/../../../../include/c++/4.4.3/fstream:696: note: candidates are: void std::basic_ofstream<_CharT, _Traits>::open(const char*, std::_Ios_Openmode) [with _CharT = char, _Traits = std::char_traits<char>]
hw1.cxx:67: error: invalid types 'int[int]' for array subscript
hw1.cxx:68: error: invalid types 'int[int]' for array subscript
hw1.cxx:69: error: invalid types 'int[int]' for array subscript
最佳答案
我记得 C++03 禁止在模板中使用带有内部链接的类型。
您应该从 main() 函数中提取 RGB 类
关于c++ - 代码在 Visual Studio 中编译良好,但在使用 g++ 的 Unix 终端中编译不佳。我在多维 vector 处出错。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14363287/
嗨,我正在考虑开发一种文件传输程序,想知道我是否想要尽可能好的加密,我应该使用什么? 我会用 C# 开发它,所以我可以访问 .net 库 :P在我的 usb 上有一个证书来访问服务器是没有问题的,如果
我创建的这个计算两个数组的交集是线性的方法的复杂度(在良好、平均、最差的情况下)? O(n) public void getInt(int[] a,int[] b){ int i=0; int
我已经能够使用 RTCPeerConnection.getStats() API 获得 WebRTC 音频调用的各种统计信息(抖动、RTT、丢包等)。 我需要将整体通话质量评为优秀、良好、一般或差。
基本问题: 如果我正在讲述/修改数据,我应该通过索引硬编码索引访问文件的元素,即 targetFile.getElement(5);通过硬编码标识符(内部翻译成索引),即 target.getElem
在 Linux 上,我想知道要调用什么“C”API 来获取每个 CPU 的统计信息。 我知道并且可以从我的应用程序中读取 /proc/loadavg,但这是系统范围的负载平均值,而不是每个 CPU 的
在客户端浏览器中使用 fetch api,GET 或 POST 没有问题,但 fetch 和 DELETE 有问题。它似乎将 DELETE 请求方法更改为 OPTIONS。 大多数研究表明是一个cor
我是一名优秀的程序员,十分优秀!