标签: standard-library

如何用rand()摆脱警告?(C++)

每当我在C++中使用rand函数时:

#include<iostream>
#include<time.h>
#include<stdlib.h>
using namespace std;
int main(){
srand(time(0));
int n=(rand()%6)+1;
cout<<"The dice roll is "<<n<<"."<<endl;
}
Run Code Online (Sandbox Code Playgroud)

我收到有关第5行从time_t到int的转换的警告:

srand(time(0));
Run Code Online (Sandbox Code Playgroud)

有没有办法摆脱这个警告?

c++ random time seed standard-library

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

strncpy()是memcpy()的特化吗?

只是好奇地知道(因为我们经常使用这些功能).我没有看到strncpy()memcpy()之间有任何实际区别.有效地说,不值得

char* strncpy (char *dst, const char *src, size_t size)
{
  return (char*)memcpy(dst, src, size);
}
Run Code Online (Sandbox Code Playgroud)

或者我错过任何副作用?有一个类似的早期问题,但找不到确切的答案.

c c++ standard-library

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

没有安装Python标准库?

我对Python很新,最近开始开发新的mac mini.如您所知,它安装了2.7.

我遇到的问题是标准库似乎没有安装.

导入模块时出现语法错误(SyntaxError:invalid syntax).

我使用argv datafile.csv运行此代码

import csv
import sys

stocks.csv = argv
f = open(sys.argv[1], 'rt')

try:
    reader = csv.reader(f)
    for row in reader:
        print row
finally:
    f.close()
Run Code Online (Sandbox Code Playgroud)

一段时间后,我决定运行翻译并获得帮助.

当我运行解释器并执行帮助(csv)或大多数其他模块(sys工作正常)时,我收到此错误:

>>> import csv
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "csv.py", line 1
    import 
          ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

我需要安装库还是我错误地访问它?

谢谢.

python standard-library

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

仅使用Python标准库进行html到文本的转换

我正在寻找使用Python 2.7.x标准库中的模块将HTML转换为文本的最佳方法.(即,不BeautifulSoup,等等)

通过HTML到文本的转换,我的意思是道德等同于lynx -dump.实际上,只需智能地删除HTML标记,并将所有HTML实体转换为ASCII(或转换为UTF8编码的unicode)就足够了.

请不要使用基于正则表达式的答案.(正则表达不能完成任务.)

谢谢!

python standard-library html-parsing html-to-text

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

当std :: map :: insert找到元素时,它仍构造对象的实例.我怎么能阻止这个?

我有一个std ::对象的映射,其实例构造起来非常昂贵.(在现实生活中,他们需要多次访问数据库.)

我想访问地图的一个元素,或者如果它不存在则创建它.这听起来像std :: map :: insert的工作,除了昂贵的对象不必要地构造,然后如果元素存在则抛弃.为了显示:

#include <iostream>
#include <map>
#include <string>

struct CexpensiveObject
{    
    CexpensiveObject(const char* args="default"):args_(args)
    {
        std::cout << "Constructor: CexpensiveObject(" << args << ")" << std::endl;
    }
    CexpensiveObject( const CexpensiveObject& other )
    {
        std::cout << "Copy Constructor: CexpensiveObject other.args_ = " << other.args_ << "." << std::endl;
        args_ = other.args_;
    }
    ~CexpensiveObject()
    {
        std::cout << "Destructor: CexpensiveObject args_ = " << args_ << "." << std::endl;
    }
    const char* args_;
};

// entry point
int main() …
Run Code Online (Sandbox Code Playgroud)

c++ standard-library

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

Scala标准库:"显式实例化以减少子类中的类文件大小"

在Scala标准库中,出现了几种模式"显式实例化以减少子类中的类文件大小".例如,在Iterator.scala中:

/** Explicit instantiation of the `Iterator` trait to reduce class file size in subclasses. */
private[scala] abstract class AbstractIterator[+A] extends Iterator[A]
Run Code Online (Sandbox Code Playgroud)

在整个源文件中,抽象类用于构造匿名类而不是特征本身.很明显,评论已经给出了足够的动力,为什么要这样做.但是对我来说非常重要:为什么这个技巧会减小文件大小,为什么子类的大小会受影响而不是Iterator本身?

abstract-class scala standard-library traits

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

为什么现在在Python中的方法是作为datetime.datetime.now而不是datetime.time.now获得的?

我想知道为什么现在这个方法是在datetime.datetime标签而不是datetime.time下实现的?

例如,要在python上获取今天的日期,请执行以下操作.

import datetime
print datetime.date.today()
Run Code Online (Sandbox Code Playgroud)

但是你现在的时间不能相同,我的意思是

print datetime.time.now()
Run Code Online (Sandbox Code Playgroud)

相反,你必须做以下事情:

print datetime.datetime.now()
Run Code Online (Sandbox Code Playgroud)

python time datetime standard-library

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

是否有列表模块功能,就像使用Transformer解压缩一样

以下是我在标准库中找到的内容吗?

split transformer1 ([], []) [("Foo", 1); ("Bar", 2); ("FooBar", 3)];;
> val it : string list * int list = (["FooBar"; "Bar"; "Foo"], [3; 2; 1])
Run Code Online (Sandbox Code Playgroud)

这是我的实施

let split transformer defval stream =
    let rec split' s acc =
        match s with
            | [] -> acc
            | x::xs -> split' xs (transformer x acc)
    split' stream defval

let transformer1 (key, item) (akey, aitem) = (key::akey, item::aitem)
let transformer2 (key, item) (akey) = (key::akey)
let transformer3 (key, item) (a1, a2, …
Run Code Online (Sandbox Code Playgroud)

f# standard-library

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

stdint.h和C99

我读了C99标准,它stdint.h是C标准库的一部分.

我是否正确阅读,如果我测试符合C99,请使用:

defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
Run Code Online (Sandbox Code Playgroud)

这意味着stdint.h应该可用吗?

一个C99很好的例子:我可以考虑一个假装符合要求但不提供stdint.h与自己的合规声明不一致的环境,因此有错误吗?

编辑:对于好奇的系统,有问题的系统是带有HP C编译器的OpenVMS(不是gcc,在openVMS上提供stdint.h).因此,根据到目前为止收到的答案和评论,我必须将此实现(假装为C99)视为错误.有关详情,请访问:https://groups.google.com/forum/#!topic/comp.os.vms/Bnh3tIOc7bo%5B101-125%5D

c c99 standard-library openvms stdint

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

在标准库中实现std :: disjunction

我已经看到了std::disjunction标准库(源代码)中的实现:

template<class...> struct disjunction : std::false_type { };
template<class B1> struct disjunction<B1> : B1 { };
template<class B1, class... Bn>
struct disjunction<B1, Bn...>
    : std::conditional_t<bool(B1::value), B1, disjunction<Bn...>> { };
Run Code Online (Sandbox Code Playgroud)

我很好奇,需要专门disjunction<B1>B1.为什么它比我天真的实施更好?

template<class...>              struct or_t
    : std::false_type {};
template<class B1, class... Bn> struct or_t<B1, Bn...>
    : std::integral_constant<bool, bool(B1::value) || bool(or_t<Bn...>::value)> {};
Run Code Online (Sandbox Code Playgroud)

c++ standard-library c++17

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