首页 > TAG信息列表 > c14
五子棋的胜负判断函数
开局的图片中,作为获胜方的最后一子并没有显示出来。不过跟判断胜负的函数无关。可以在上面的程序进行设计是否显示出。这里用的是十五×十五的棋盘。 int isWin(char chess[15][15], int n, int m)//n代表最近一次落点的行坐标,m代表列坐标 { int a=0,i,b=n,c=m,g=1;//g值的变火柴游戏和智力游戏问题
2.1火柴游戏 begin(算法开始) 定义 r11,r12,r13,r21,r22,r23,r31,r32,r33,c11,c21,c12,c22,c13,c23,c14,c24;(第一个数字代表行第二个代表列c表示竖的r表示横的火柴) 先随机取走一根火柴 if是r11,r12,r13,r31,r32,r33,c11,c21,c12,c22,c14,c24 则移走对应的火柴 end 2.5 begin 定义c-getrusage无法正常工作
我正在尝试通过以下代码通过getrusage系统调用来测量子进程使用的内存量 #include <iostream> using std::cout; using std::endl; #include <unistd.h> #include <thread> #include <chrono> #include <sys/wait.h> #include <sys/time.h> #include <sys/resourcec-间接转发参考
众所周知,“直接”转发引用的工作方式很简单: template<typename T> void f(T &&t); // Here we are. 现在,如何间接使用转发引用: template<typename T> void f(some_class_template<T> &&f); // Here it is an rvalue reference and not universal one 在第二种情况下,是否可以c-非连续对象的数组
#include <iostream> #include <cstring> // This struct is not guaranteed to occupy contiguous storage // in the sense of the C++ Object model (§1.8.5): struct separated { int i; separated(int a, int b){i=a; i2=b;} ~separated(){i=i2=-1c-struct指针函数指向其他struct的其他函数
我想知道是否可以将其他结构的功能指向一个结构: 例: typedef struct { int func(int z) { return z * 2; } } sta; typedef struct { int(*this.func)(int); } stah; int main() { sta sa; stah sah; sah.func = &sa.func; return 0;c-发送具有std :: vector成员的结构时出现分段错误
为什么在使用mpirun -np 2 ./out命令的以下代码中出现以下错误?我在调整std :: vector的大小后调用了make_layout(),所以通常我不会出现此错误.如果我不调整大小,它会起作用.是什么原因? main.cpp中: #include <iostream> #include <vector> #include "mpi.h" MPI_Datatype MPI_CHILc-lang跳过初始化列表构造的处理
如果您看下面的代码,我认为main()中的两行都应为InitSomething调用initializer_list构造函数. gcc按照我的预期输出22,但是clang仅输出一个2.clang是否错误? 我正在使用-std = c 14. #include <iostream> struct InitSomething { explicit InitSomething(int) { std::cout <<c-在运行时合并规则并返回规则
我正在尝试编写一些在Spirit-X3之上构建的复杂解析器,因此我需要了解一些事情: •如何在运行时合并规则. (用纳比亚力克的把戏) ♦返回这样的规则是否可以: x3::rule<char> SomeFunction(std::string &str) { x3::rule<char> foo; auto bar = baz; BOOST_SPIRIT_DEFINE(c-无法将带有NULL删除器的std :: unique_ptr移动到std :: shared_ptr?
我想将NULL std :: unique_ptr移至std :: shared_ptr,如下所示: std::unique_ptr<float> test = nullptr; std::shared_ptr<float> test2 = std::move(test); 据我所知,这样做是合法的,并且在Visual Studio 2015和GCC中运行良好. 但是,我不能对具有删除器声明的std :: unique_ptr是否在C 14中始终定义了对可复制对象的复制?
对于trivially copyable型T,请考虑: void f(T z) { T a; T b; std::memcpy(&b, &a, sizeof(T)); a = z; b = z; // ... } 是否在C 14中定义了此片段的行为,如果 > T是char, > T是int,或> T是struct {int数据; }; ? 假设f传递了一个持有有效值的对象. 如果将memcc-我的LLVM和clang(OSX)是什么版本?
在Mac OS上,如果运行clang –version,则会得到: Apple LLVM version 6.0 (clang-600.0.34.4) (based on LLVM 3.5svn) Target: x86_64-apple-darwin14.0.0 Thread model: posix 由于LLVM official page表明当前的LLVM版本是3.5,因此Apple clang版本似乎与开源的LLVM不同.输出(基于c-function-try-block和noexcept
对于以下代码 struct X { int x; X() noexcept try : x(0) { } catch(...) { } }; Visual Studio 14 CTP发出警告 warning C4297: ‘X::X’: function assumed not to throw an exception but does note: __declspec(nothrow), throw(), noexcc-保留std :: initializer_list的副本是否安全?理由是什么?
在我的环境中,std :: initializer_list被实现为指向第一个元素和大小的指针.仍然在我的特定设置中,我能够观察到: >基础数据分配在当前功能框架中(因为指向第一个元素的指针如此) >从函数中按值返回initializer_list不会更改指针的值(导致得出的结论是,数据不会与initializer_list一c-使用智能指针在大型对象集合中创建多个索引
我正在将多个索引(即使用不同的键)创建到大量对象中.对象可以更改,并且集合可以缩小和增长.到目前为止,我的想法是: 保留指向对象的某种指针的多个集合. 使用set而不是map可以更好地封装.使用unordered_set可以很好地处理大型数据集.理想情况下,指针应全部为某种形式的智能指针. 我c-过程入口点_ZNSt7_cxx1112basic_stringlcSt11char_traitslcESalcEEC1Ev不在动态链接库中
我在尝试使用std :: string时遇到巨大困难.该程序完全可以编译,但是当我运行该程序时,出现以下错误:error 我在google上到处都看过,还没找到解决该问题的方法.我也尝试过用不同的方式编写代码,看看是否能告诉我任何事情. std::string yourName; std::cout << "What is your name?";c – std :: experimental :: is_detected的奇怪MSVC行为
我实现了基于on this article on cppreference.com的std :: experimental :: is_detected(部分代码低于工作repro). 它适用于G和Clang,但导致MSVC的奇怪错误行为:is_detected似乎总是bool_constant< true>! 在这里,您可以使用gcc 5.x查看正确的结果: @ideone.com 但是使用MSVC 19(随VS如何在C中用Fraction Object乘以整数常量
我有一个分数类. 我需要对分数对象进行3次操作,即 >将两个Fraction对象相乘.例如F1 * F2 >将一个Fraction对象乘以整数.对于前者F1 * 3>乘以Fraction对象的整数.对于前者3 * F1. 前两种情况可以通过覆盖Fraction Class *运算符来实现. Fraction operator*(const Fraction&); Fractc – constexpr vs const vs constexpr const
const-vs-constexpr-on-variables 关于constexpr的说法是正确的,如果使用double(当然还有浮动).但是,如果将var类型从double更改为整数类型(如int,char等),则一切正常.为什么会这样? http://ideone.com/DAWABE int main() { const int PI1 = 3; constexpr int PI2 = 3;c – 如何序列化犰狳的矢量
如何序列化arma :: Col?下面是MWE和错误输出. MWE: #include <boost/mpi/environment.hpp> #include <boost/mpi/communicator.hpp> #include <iostream> #include "armadillo" namespace mpi = boost::mpi; struct S { int i; arma::Col<douc – 延迟线程启动 – 通知所有不唤醒所有线程
尝试: 在多个线程上执行延迟启动. 问题: 我已经创建了下面的例子来证明这个想法,并试图在x上创建一个种族代码来证明所有的线程都会同时运行. 似乎事物是序列化而不是并行运行 – 期望的行为,但也许每个线程运行的时间太短并且在另一个onse得到服务之前结束 有时一个线程会卡在cv.waic – 通用lambda及其作为常量表达式的参数
以下代码被GCC 7.2和clang 5.0.0接受,但被Microsoft VS 2017 15.5.0 Preview 5和Intel C编译器19拒绝: struct S { }; constexpr int f(S) { return 0; } int main() { auto lambda = [](auto x) { constexpr int e = f(x); }; lambda(S{}); } 微c – 性能差异:std :: accumulate vs std :: inner_product vs Loop
今天,当我尝试实现这个简单的操作时,我想分享一些让我头脑发热的东西: 我发现了执行相同操作的不同方法: >使用std :: inner_product. >实现谓词并使用std :: accumulate函数.>使用C风格的循环. 我想通过使用Quick Bench并启用所有优化来执行一些基准测试. 首先,我将两个C替代品与浮c – 默认情况下是默认构造函数/赋值noexcept / constexpr吗?
所以,我的问题很简单: 将默认类构造函数指定为noexcept或constexpr(或任何其他可能的东西)是否有任何意义? struct foo { foo() = default; // vs constexpr foo() noexcept = default; // same thing would apply for copy/move ctors and assignment operators };c – 将满足某些条件的所有元素从一个容器移动到另一个容器,即我正在寻找某种“move_if”
特定 std::vector<T> first = /* some given data */, second; 我想将满足某些条件cond(e)的所有元素e从第一个移动到第二个,即类似的东西 move_if(std::make_move_iterator(first.begin()), std::make_move_iterator(first.end()), std::back_inserter(second), [&](T