小编Woj*_*tek的帖子

C++ 11 - 右值引用变量

有什么区别

int a = 42;
Run Code Online (Sandbox Code Playgroud)

int&& rvr = 42;
Run Code Online (Sandbox Code Playgroud)

a显然是一个lvalue,但rvr也是一个,lvalue因为它是一个命名变量,所以这些表达式可以被认为是完全等价的,如果不是,在哪种情况下int&&声明是首选?

c++ c++11

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

附加到ofstream的文件

将文本附加到文件时遇到问题.我打开一个ofstream追加模式,仍然不是三行只包含最后一行:

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
    ofstream file("sample.txt");
    file << "Hello, world!" << endl;
    file.close();

    file.open("sample.txt", ios_base::ate);
    file << "Again hello, world!" << endl;
    file.close();

    file.open("sample.txt", ios_base::ate);
    file << "And once again - hello, world!" << endl;
    file.close();

    string str;
    ifstream ifile("sample.txt");
    while (getline(ifile, str))
        cout << str;
}

// output: And once again - hello, world!
Run Code Online (Sandbox Code Playgroud)

那么ofstream附加到文件的正确构造函数是什么?

c++

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

C++ program unexpectedly blocks / throws

I'm learning about mutexes in C++ and have a problem with the following code (taken from N. Josuttis' "The C++ Standard Library").

I don't understand why it blocks / throws unless I add this_thread::sleep_for in the main thread (then it doesn't block and all three calls are carried out).

The compiler is cl.exe used from the command line.

#include <future>
#include <mutex>
#include <iostream>
#include <string>
#include <thread>
#include <chrono>

std::mutex printMutex;

void print(const std::string& s)
{
    std::lock_guard<std::mutex> lg(printMutex);

    for …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading c++11

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

为什么std :: chrono :: duration基于秒

我正在学习<chrono>图书馆,考虑到std::chrono::duration课程,是否有任何特定的理由以秒为基础?例如,存储秒数的变量将是

chrono::duration<int> two_seconds(2);
Run Code Online (Sandbox Code Playgroud)

而所有其他时间跨度都需要将它们与秒相关联,例如

chrono::duration<int, ratio<60>> two_minutes(2);
chrono::duration<int, ratio<1, 1000>> two_milliseconds(2);
chrono::duration<int, ratio<60 * 60 * 24>> two_days(2); 
Run Code Online (Sandbox Code Playgroud)

是否有任何理由在几秒钟而不是分钟,小时等基础上建立持续时间?

c++ c++-chrono

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

在文件路径中打印反斜杠

假设我有一个名称以“n”开头的文件(如“nFileName.doc”)。为什么当我将其路径作为字符串并将其打印到控制台时,“\n”序列不被视为转义序列(并且更广泛 - 路径中的单个反斜杠不被视为转义字符)?

string fileName = Directory.GetFiles(@"C:\Users\Wojtek\Documents").Where(path => Path.GetFileName(path).StartsWith("n")).First();

string str = "Hello\nworld";

Console.WriteLine(fileName); // C:\Users\Wojtek\Document\nFileName.doc
Console.WriteLine(str);      //Hello
                             //world
Run Code Online (Sandbox Code Playgroud)

c#

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

sizeof除了char以外的任何类型都有保证吗?

我知道在C++ sizeof(char)中保证是1,但它是唯一的情况还是有其他内置类型保证具有确切的大小?

特别是语言要求sizeof(bool) == 1还是sizeof(int) == 4要求,还是实施细节?

c++

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

标签 统计

c++ ×5

c++11 ×2

c# ×1

c++-chrono ×1

multithreading ×1