问题列表 - 第25221页

不是c ++中的迭代器是一种指针吗?

好的这次我决定使用STL制作一个列表.我需要为每个客户端创建一个专用的TCP套接字.所以每当我有一个连接时,我实例化一个套接字并在列表中添加一个指向它的指针.

list<MyTcp*> SocketList;  //This is the list of pointers to sockets
list<MyTcp*>::iterator it;  //An iterator to the list of pointers to TCP sockets.
Run Code Online (Sandbox Code Playgroud)

将一个新指针放到套接字很容易,但是现在每次连接结束时我应该断开套接字并删除指针,这样我就不会有大量的内存泄漏,对吧?好吧..我以为我做得好这个:

it=SocketList.begin();
while( it != SocketList.end() ){
    if((*it)->getClientId() == id){
    pSocket = it; //    <-------------- compiler complains at this line
    SocketList.remove(pSocket);
    pSocket->Disconnect();
    delete pSocket;
    break;
    }
}
Run Code Online (Sandbox Code Playgroud)

但编译器这样说:

 error: invalid cast from type ‘std::_List_iterator<MyTcp*>’ to type ‘MyTcp*’
Run Code Online (Sandbox Code Playgroud)

有人可以帮我吗?我以为我做的事情是对的,在任何给定的时间只是指向集合中的一个元素不是迭代器?我该怎么解决?

c++ pointers iterator list

5
推荐指数
2
解决办法
6818
查看次数

为什么在安装PaperClip时会得到"has_attached_file"的"未定义方法"?

我刚刚安装了Paperclip的插件,我收到以下错误消息,但我不确定原因:

NoMethodError (undefined method `has_attached_file' for #<Class:0x10338acd0>):
  /Users/bgadoci/.gem/ruby/1.8/gems/will_paginate-2.3.12/lib/will_paginate/finder.rb:170:in `method_missing'
  app/models/post.rb:2
  app/controllers/posts_controller.rb:50:in `show'
Run Code Online (Sandbox Code Playgroud)

它引用了will_paginate gem.从我能找到的,似乎我PostsController#index或者以前尝试安装gem而不是插件有问题,在这种情况下我读过我应该能够以/config/environments.rb某种方式通过文件来修复.

我之前认为以前的gem安装并不重要,因为我在安装插件之前删除了旧版本的网站.在该站点的当前版本中,我显示该表已在迁移后使用Paperclip列进行更新.这是我的代码:

PostsConroller#show:

  def show
    @post = Post.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @post }
    end
  end
Run Code Online (Sandbox Code Playgroud)

Post 模型:

class Post < ActiveRecord::Base

  has_attached_file :photo
  validates_presence_of :body, :title
  has_many :comments, :dependent => :destroy
  has_many :tags, :dependent => :destroy
  has_many :votes, :dependent => :destroy
  belongs_to :user
  after_create :self_vote
      def self_vote
       # I am assuming you have a …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails paperclip

52
推荐指数
2
解决办法
3万
查看次数

如何使用C#在.NET中获取格式化的JSON?

我正在使用.NET JSON解析器,并希望序列化我的配置文件,以便它是可读的.所以代替:

{"blah":"v", "blah2":"v2"}
Run Code Online (Sandbox Code Playgroud)

我想要更好的东西:

{
    "blah":"v", 
    "blah2":"v2"
}
Run Code Online (Sandbox Code Playgroud)

我的代码是这样的:

using System.Web.Script.Serialization; 

var ser = new JavaScriptSerializer();
configSz = ser.Serialize(config);
using (var f = (TextWriter)File.CreateText(configFn))
{
    f.WriteLine(configSz);
    f.Close();
}
Run Code Online (Sandbox Code Playgroud)

.net c# json javascriptserializer

234
推荐指数
12
解决办法
20万
查看次数

一个很好的Java排序列表

我正在寻找一个很好的java排序列表.谷歌搜索给我一些关于使用TreeSet/TreeMap的提示.但是这些组件缺少一件事:随机访问集合中的元素.例如,我想访问有序集合中的第n个元素,但是使用TreeSet,我必须遍历其他n-1个元素才能到达那里.这将是一种浪费,因为我的Set中有多达数千个元素.

基本上,我正在寻找类似于.NET中的排序列表的东西,能够快速添加元素,快速删除元素,并且可以随机访问列表中的任何元素.

在某处实现了这种排序列表吗?谢谢.

编辑

我对SortedList的兴趣源于这些问题:我需要维护一个包含数千个对象的列表(并且可以增长到数十万个).这些对象将持久保存到数据库中.我想从整个列表中随机选择几十个元素.因此,我尝试维护一个分离的内存列表,其中包含所有对象的主键(长号).当从数据库添加/删除对象时,我需要从列表中添加/删除键.我现在正在使用ArrayList,但是当记录数量增长时,我担心ArrayList不适合它.(想象一下,每次从数据库中删除对象时,都必须迭代数十万个元素).回到我编写.NET编程的时候,我会使用一个排序的List(List是一个.NET类,一旦Sorted属性设置为true,将维护其元素的顺序,并提供帮助删除/插入元素的二进制搜索很快).我希望我能从java BCL找到类似的东西,但不幸的是,我没有找到一个很好的匹配.

java sorting

43
推荐指数
3
解决办法
16万
查看次数

shell中的数字循环

下面示例中的构造 ((..)) 的名称和语法是什么?

for ((i=1;i<10;i++)) do echo $i; done
Run Code Online (Sandbox Code Playgroud)

它有奇怪的变量 i ,
shell 中数字循环的其他结构在哪里?

bash shell command-line cycle

1
推荐指数
1
解决办法
3721
查看次数

openssl CRC32 计算

我在这里看到了一些关于 CRC 32 计算的其他问题。但没有一个让我满意,因此。

openssl 库是否有用于计算 CRC32 的 api 支持?我已经在使用 openssl 进行 SHA1,所以更愿意使用它,而不是链接到另一个用于 CRC32 的库(我的实现是用 C 语言实现的)。

谢谢。

crc32 openssl

5
推荐指数
1
解决办法
1万
查看次数

Perl文件测试操作员帮助

这是一个非常基本的问题,但我是perl的新手,无法解决问题所在.我只是想隔离目录中的文件,但-d运算符会将所有文件夹内容视为文件...

@contents是我的数组,当我运行它时:

use strict;

if ($ARGV[1]) {
    die("Error: You can only monitor one directory at a time\n");
}

my $directory = $ARGV[0] || die "Error: No directory defined\n";

opendir(DIR, $directory) || die "Error: Can't open dir $directory: $!";
my @contents = readdir(DIR);

foreach my $item(@contents) {
    if (-d $item) { next; }
    print"$item is a file\n"; 
}

closedir (DIR);
Run Code Online (Sandbox Code Playgroud)

我一直收到文件夹和文件.或者,如果我使用-f,我什么也得不到.

编辑:这是输出 -

file01.txt is a file
folder 01  is a file
folder 02 is a file
Screen shot 2010-04-18 at …
Run Code Online (Sandbox Code Playgroud)

perl

4
推荐指数
1
解决办法
909
查看次数

明确地与布尔常量进行比较是不好的,例如在Java中是否(b == false)?

写不好

if (b == false) //...

while (b != true) //...
Run Code Online (Sandbox Code Playgroud)

是不是总是更好,而不是写:

if (!b) //...

while (!b) //...
Run Code Online (Sandbox Code Playgroud)

据推测,性能没有差异(或者存在?),但是如何衡量两者之间的显性,简洁性,清晰度,可读性等?

更新

为了限制主观性,我还要感谢来自权威编码风格指南的任何引用,这些引用始终是优选的,或者在何时使用.


注意:变量名称b仅用作示例,ala foobar.

java boolean coding-style

72
推荐指数
7
解决办法
2万
查看次数

什么会导致objectForKey:返回null并且有一个有效的字符串?

我有一个问题,NSDictionary返回null一个NSString即使字符串是字典中.这是代码:

- (void)sourceDidChange:(NSNotification *)aNote {
    NSDictionary *aDict = [aNote userInfo];
    DLog(@"%@", aDict);
    NSString *newSourceString = [aDict objectForKey:@"newSource"];
    DLog(@"%@", newSourceString);
    newSourceString = [newSourceString stringByReplacingOccurrencesOfString:@" " withString:@""];
    DLog(@"%@", newSourceString);
    NSString *inspectorString = [newSourceString stringByAppendingString:@"InspectorController"];
    DLog(@"%@", inspectorString);
    newSourceString = [newSourceString stringByAppendingString:@"ViewController"];
    DLog(@"%@", newSourceString);
}
Run Code Online (Sandbox Code Playgroud)

我得到以下日志声明:

2010-04-17 23:50:13.913 CoreDataUISandbox[13417:a0f] -[RightViewController sourceDidChange:] { newSource = "Second View"; }
2010-04-17 23:50:13.914 CoreDataUISandbox[13417:a0f] -[RightViewController sourceDidChange:] (null)
2010-04-17 23:50:13.916 CoreDataUISandbox[13417:a0f] -[RightViewController sourceDidChange:] (null)
2010-04-17 23:50:13.917 CoreDataUISandbox[13417:a0f] -[RightViewController sourceDidChange:] (null)
2010-04-17 23:50:13.917 CoreDataUISandbox[13417:a0f] …
Run Code Online (Sandbox Code Playgroud)

cocoa objective-c nsdictionary nsstring

7
推荐指数
1
解决办法
5496
查看次数

改变所有元素的不透明度,但一个分区

我试图淡化网页上的所有元素,除了一个div.我已经能够使用以下jQuery淡化所有元素:

$('*').css('opacity', .3);
Run Code Online (Sandbox Code Playgroud)

但是,似乎不透明度是从父元素继承的属性,即使我明确地将div的不透明度设置为1.我现在对任何解决方案都画了一个空白,所以我可以在这里得到一些帮助吗?

javascript css jquery css-selectors opacity

5
推荐指数
2
解决办法
8557
查看次数