我知道如何使用for循环.是否可以使用LINQ或lambdas做这样的事情?
int[] a = { 10, 20, 30 };
int[] b = { 2, 4, 10 };
int[] c = a * b; //resulting array should be { 20, 80, 300 }
Run Code Online (Sandbox Code Playgroud) 我正在从我写的一个类中得到一些非常奇怪的链接错误.我完全无法找到任何可以描述正在发生的事情的东西.
Visual Studio(Windows XP)
players.obj:错误LNK2019:未解析的外部符号"public:__thiscall TreeNode :: TreeNode(void)"(?? 0?$ TreeNode @ VPlayer @@@@ QAE @ XZ)在函数"public:__thiscall PlayerList :: PlayerList"中引用(void)"(?? 0PlayerList @@ QAE @ XZ)
Xcode(OSX 10.5)
未定义的符号:"TreeNode ::〜TreeNode()",引用于:player.o中的PlayerList :: ~PlayerList()
头文件:generics.h
class TreeNode : public BaseNode{
public:
const static int MAX_SIZE = -1; //-1 means any size allowed.
const static int MIN_SIZE = 0;
//getters
int size() const;
vector<C*> getChildren() const;
//setters
void setChildren(vector<C*> &list);
//Serialization
virtual void display(ostream &out) const;
virtual void read(istream &in);
virtual void write(ostream &out) const; …Run Code Online (Sandbox Code Playgroud) 我有一个简单的函数,其中一个数组声明大小取决于参数int.
void f(int n){
char a[n];
};
int main() {
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这段代码在GNU C++上编译得很好,但在MSVC 2005上却没有.
我收到以下编译错误:
.\main.cpp(4) : error C2057: expected constant expression
.\main.cpp(4) : error C2466: cannot allocate an array of constant size 0
.\main.cpp(4) : error C2133: 'a' : unknown size
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能纠正这个问题?
(我有兴趣使用MSVC,而不使用new/delete)
我正在阅读一个大文本文件,其中有140万行,大小为24 MB(平均每行17个字符).
我正在使用Delphi 2009,文件是ANSI但在读取时会转换为Unicode,所以你可以说转换后的文本大小为48 MB.
(编辑:我发现了一个更简单的例子......)
我正在将此文本加载到一个简单的StringList中:
Run Code Online (Sandbox Code Playgroud)AllLines := TStringList.Create; AllLines.LoadFromFile(Filename);
我发现数据行似乎占用了比48 MB更多的内存.
实际上,他们使用155 MB的内存.
我不介意Delphi使用48 MB甚至多达60 MB允许一些内存管理开销.但155 MB似乎过度.
这不是StringList的错误.我之前尝试将行加载到记录结构中,我得到了相同的结果(160 MB).
我没有看到或理解什么可能导致Delphi或FastMM内存管理器使用3倍的内存量来存储字符串.堆分配不能低效,可以吗?
我调试了这个,并尽可能地研究它.任何关于为什么会发生这种情况的想法,或者可能有助于减少过量使用的想法都会受到高度赞赏.
注意:我使用这个"较小"的文件作为示例.我真的想加载一个320 MB的文件,但是由于这个多余的字符串要求,Delphi要求超过2 GB的RAM和内存不足.
Addenum:Marco Cantu刚刚发布了关于Delphi和Unicode的白皮书.Delphi 2009将每个字符串的开销从8个字节增加到12个字节(对于字符串的实际指针,可能还有4个字节).每17x2 = 34字节行额外增加16个字节,几乎增加了50%.但我看到超过200%的开销.150%的额外费用是多少?
成功!!感谢大家的建议.你们都让我思考.但是我必须给Jan Goyvaerts一个答案,因为他问:
你为什么使用TStringList?文件真的必须作为单独的行存储在内存中吗?
这使我得到了解决方案,而不是将24 MB文件作为140万行StringList加载,我可以将我的行分组到我的程序知道的自然组中.因此,这导致127,000行加载到字符串列表中.
现在每行平均190个字符而不是17个.每个StringList行的开销是相同的,但现在有更少的行.
当我将其应用于320 MB文件时,它不再耗尽内存,现在加载的RAM不到1 GB.(它只需要大约10秒钟加载,这是非常好的!)
将有一些额外的处理来解析分组的行,但在每个组的实时处理中不应该注意到它.
(如果你想知道,这是一个家谱程序,这可能是我需要的最后一步,它允许它在不到30秒的时间内在32位地址空间中加载大约一百万人的所有数据.所以我'我们仍然需要一个20秒的缓冲区才能将索引添加到数据中,以便显示和编辑数据.)
如何应用始终保持其原始比例的重复纹理(纹理中的1个像素=屏幕上的1个像素),而不管其应用的顶点数据如何.
我意识到这不是最常见的任务,但可以轻松设置opengl来做到这一点,还是我需要将某种掩模应用于尊重其原始外观的顶点数据?
编辑:在我的具体情况下,我试图绘制不同大小的2D椭圆,具有相同的像素模式.椭圆形由三角形扇形成,我很难在其上绘制任何类型的重复纹理.我希望有一些opengl配置组合可以很容易地做到这一点.此外,现在我意识到重要的是要提到我正在使用opengles,因为iPhone不可用.
开始使用jquery并且无法获得asp.net mvc的hello world类型示例.尝试使用此脚本加载页面时,我收到运行时错误"对象预期".
A.脚本标记应放在母版页中的哪个位置?B.我可能做错了什么?我的页面中肯定有"a"元素?
<script src="../Scripts/jquery-1.2.6.min.js" type="text/javascript"></script>
<script src="../Scripts/jquery.corner.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$("a").click(function(event) {
alert("Thanks for visiting!");
});
});
</script>
Run Code Online (Sandbox Code Playgroud) 我将如何实现分页所需的查询?
基本上,当请求第1页时,获取前5个条目.对于第2页,获取下一个5,依此类推.
我计划通过couchdb-python模块使用它,但这不会对实现产生任何影响.
所以前几天我正在创建一个类,当我意识到它生成了以下工作代码时,使用Eclipse的方法创建了equals方法:
class Test {
private int privateInt;
[...]
public boolean equals(Object obj) {
[...]
Test t = (Test) obj;
if ( t.privateInt == privateInt ) {
[...]
}
}
Run Code Online (Sandbox Code Playgroud)
t.privateInt .. ???? 它假设是私人的!所以我想除了私有,受保护,包保护和公共之外还有一个字段可见性.
那么这里发生了什么?怎么称呼?有人会用这个吗?这不会破坏封装吗?如果班级没有改变者并且我改变了这个怎么办?这也发生在C++上吗?这是一个OO成语吗?如果没有,那为什么Java会这样做呢?
一般来说,我在哪里可以找到有关此信息?
谢谢.
Ergo:今天设计SQL Server数据库时,应始终使用NVARCHAR.
这听起来有道理吗?有没有人不同意任何前提?今天有没有理由在NVARCHAR上选择VARCHAR?
扩展方法是一个非常有用的功能,您可以在任何类中添加所需的许多功能.但我想知道是否有任何不利因素可能给我带来麻烦.有什么意见或建议吗?
c# ×2
c++ ×2
arrays ×1
asp.net-mvc ×1
couchdb ×1
declaration ×1
delphi ×1
delphi-2009 ×1
fastmm ×1
java ×1
jquery ×1
lambda ×1
linker ×1
linq ×1
nvarchar ×1
opengl-es ×1
pagination ×1
parameters ×1
sql-server ×1
utf-16 ×1
visibility ×1