小编Bee*_*and的帖子

从元组列表中创建对词典的优雅方式?

我已经定义了一个元组:( slot,gameid,bitrate)

并创建了一个名为的列表myListOfTuples.在此列表中可能是包含相同的元组gameid.

例如,列表可能如下所示:

[
   (1, "Solitaire", 1000 ),
   (2, "Diner Dash", 22322 ),
   (3, "Solitaire", 0 ),
   (4, "Super Mario Kart", 854564 ),
   ... and so on.
]
Run Code Online (Sandbox Code Playgroud)

从这个名单,我需要创建对的字典- ( ,gameId),bitrate其中bitrategameId的是我碰到了那个特定的第一个gameIdmyListOfTuples.

例如,从上面的例子中 - 对的字典只包含gameId"Solitaire":("Solitaire", 1000 )因为1000是找到的第一个比特率.

NB.我可以创建一组独特的游戏:

uniqueGames = set( (e[1] for e in myListOfTuples ) )
Run Code Online (Sandbox Code Playgroud)

python

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

libevent和non-blocking socket

据我所知,为了使用libevent监视套接字, event_set()首先应该使用正确的参数调用.

libevent文档声明eventevent_set()的参数可以是EV_READ或EV_WRITE.并且此事件参数是要注意的事件.

但是EV_READ和EV_WRITE对应的套接字事件是什么?我的意思是我如何监视连接状态的变化,而不是监视传入的消息?

c sockets libevent

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

我可以阻止对象分配吗?

我想确保以下类型的呼​​叫是非法的:

MyClass me;
MyClass you;
me = you; // how to make this illegal?
Run Code Online (Sandbox Code Playgroud)

可能吗?

c++

6
推荐指数
4
解决办法
2851
查看次数

如何从堆栈构造或返回底层deque?

我希望能够将std :: stack <>转换为std :: deque <>.有直接的转换吗?

c++

6
推荐指数
2
解决办法
1606
查看次数

是否有一直使用static_cast <int>的替代方法?

我有一个调用的枚举StackID,在我的代码中,我需要static_castint很多 - 例如

StackID somestack;
int id = static_cast<int>(somestack);
Run Code Online (Sandbox Code Playgroud)

有没有一种替代方法可以一次又一次地进行这种演绎?我听说过"隐含的"转换 - 这是我可以在这里使用的东西吗?

(可能与这个问题有关)

c++

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

std :: vector <char>中元素的字节对齐是什么?

我希望这些元素是1字节对齐的,并且类似于a std::vector<int>4字节对齐(或者int特定平台上的任何大小).

有谁知道标准库容器如何对齐?

c++ memory stl

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

我应该返回一个迭代器或一个指向STL容器中元素的指针吗?

我正在开发一个引擎,用于将现有代码移植到不同的平台.现有代码是使用第三方API开发的,我的引擎将根据我的新平台重新定义这些第三方API函数.

以下定义来自API:

typedef unsigned long shape_handle;    
shape_handle make_new_shape( int type );
Run Code Online (Sandbox Code Playgroud)

我需要重新定义make_new_shape,我可以选择重新定义shape_handle.

我已经定义了这个结构(简化):

struct Shape
{
    int type
};
Run Code Online (Sandbox Code Playgroud)

调用者make_new_shape并不关心底层结构Shape,只需要一个"句柄"就可以调用以下函数:

void `set_shape_color( myshape, RED );`
Run Code Online (Sandbox Code Playgroud)

myshape形状的句柄在哪里.

我的引擎将管理Shape对象的内存,并且其他要求规定引擎应该将Shape对象存储在列表或其他可迭代容器中.

我的问题是,表示此句柄最安全的方法是什么 - 如果它Shape本身将存储在std :: list中 - 迭代器,指针,索引?

c++ stl

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

我必须将哪些参数传递给函数来执行对象的隐式构造?

如果这是一个骗局,我道歉.我发现了一些帖子.防止隐式转换,但没有任何重新.鼓励隐含的结构.

如果我有:

class Rect
{
public:
    Rect( float x1, float y1, float x2, float y2){};
};
Run Code Online (Sandbox Code Playgroud)

和自由功能:

Rect Scale( const Rect & );
Run Code Online (Sandbox Code Playgroud)

为什么会

Rect s = Scale( 137.0f, 68.0f, 235.0f, 156.0f );
Run Code Online (Sandbox Code Playgroud)

不做隐式构造a const Rect&而是生成此编译器错误

'Scale' : function does not take 4 arguments
Run Code Online (Sandbox Code Playgroud)

c++

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

将参数传递给python脚本并打开文件

我已经构建了一个脚本,它将文件名作为参数,并提取与特定模式匹配的所有行.麻烦的是我无法打开文件名 - 我一直得到:

"TypeError: coercing to unicode: need string or buffer"
Run Code Online (Sandbox Code Playgroud)

它抱怨这条线info = open(name, 'r').

这是代码:

import re
import sys
print sys.argv[1:]

keyword = 'queued='
pattern = re.compile(keyword)

name = sys.argv[1:]
inf = open(name, 'r') 
outf = open("test.txt", 'w')

for line in inf:
    if pattern.search(line):
        outf.write(line)
Run Code Online (Sandbox Code Playgroud)

我称之为

`extract.py trunc.log`
Run Code Online (Sandbox Code Playgroud)

我有什么想法我做错了吗?

python

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

是否有一种优雅的方式将一个deque的子集转移到另一个deque?

通过使用boost或其他方式?

我想创建一个函数,d从(并包括)索引iStart到索引0中获取deque的子集,转换为新的deque,但也将这些值设置d为0.我想到了这个:

std::deque<int> CreateSubset(std::deque<int>& d, int iStart )
{
   int iSubsetSize = iStart+1;
   std::deque<int> subset(iSubsetSize); // initialise a deque of a certain size.

   std::deque<int>::iterator it = d.begin();

   subset.assign (it, d.begin()+iStart+1);

   for(;it != d.begin()+iStart+2; it++)
   {
     *it = 0;
   }  
   return subset;
}
Run Code Online (Sandbox Code Playgroud)

但它看起来很可怕 - 有更好的方法吗?

c++ deque

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

标签 统计

c++ ×7

python ×2

stl ×2

c ×1

deque ×1

libevent ×1

memory ×1

sockets ×1