k******4 发帖数: 94 | 1 level order的最大问题就是空间复杂度,指数增长.
试着用DFS写了下,空间复杂度是O(logn),时间O(n),
//treeDepth 是树的实际高度,desiredDepth是叶子的期望高度。
//当第一次遇到一个比treeDepth高度小一的叶子,把desiredDepth的设置为treeDepth
-1,并且需要后面所有叶子的高度都是这个值。
bool validateCompleteBT(TreeNode*root, const int &treeDepth, int &
desiredDepth, int curDepth, bool &setDesiredDepthFlag)
{
curDepth++;
if(root->left == NULL && root->right == NULL)
{
if(setDesiredDepthFlag && curDepth == (treeDepth-1))
{
setDesiredDepthFlag... 阅读全帖 |
|
b*******m 发帖数: 10 | 2 如下代码,大case 会runtime error 这是什么原因?
哪个大牛帮忙看下
bool isMatch(const char *s, const char *p) {
int lens = strlen(s);
int lenp = strlen(p);
vector> dp(lens+1, vector(false, lenp+1));
dp[lens][lenp] = true;
for (int i = lenp-1; i >= 0; i--) {
if (p[i] == '*' && dp[lens][i+1]) {
dp[lens][i] = true;
} else {
break;
//dp[len][i] = false;
}
}
for (... 阅读全帖 |
|
Q*****a 发帖数: 33 | 3 没想到什么比O(n^2)好的方法,毕竟是partially order, 不是total order
但到不了O(n^2*l), 只是O(n^2 + nl).只需要过一遍string计算sign就可以了,另外将
数组按长度从大到小排列,提前剪枝也可以优化一些,但复杂度还是O(n^2)
const int INT_BITS = sizeof(int) * 8;
const int DATA_LEN = 256/INT_BITS;
class Int256 {
vector data;
public:
Int256(): data(DATA_LEN, 0) {
}
Int256(string s): data(DATA_LEN, 0) {
for (auto c: s) {
Set((unsigned char)c);
}
}
void Set(int l) {
data[l/INT_BITS] |= 1 << (l%INT_BITS);
}
... 阅读全帖 |
|
l*********o 发帖数: 3091 | 4 其实就brut force.基本O(n).不符合的很快就return,写起来也简单。
bool BrutForceCheck(char* str, int sub, int n)
{
if (n / sub*sub != n) return false;
int m = n / sub;
if (m < 2) return false;
int k;
for (int i = 1; i < m; i++)
{
k = i*sub;
for (int j = 0; j < sub; j++)
{
if (str[k + j] != str[j]) return false;
}
}
return true;
}
bool CheckIfStrHasInternalRepeat(char* str)
{
bool rtn = false;
int length = strlen(str);
for (int i = ... 阅读全帖 |
|
f*******r 发帖数: 976 | 5 LZ不用多放在心上,这道题不简单啊。这道题考的是对KMP的理解深度,最主要的就是
考的KMP里面的计算pattern string的next矩阵的计算方法。如果一个string是由一个
substring重复多次拼接而成,那么它的next矩阵肯定是这样:
x x x 3 4 5 6 7 8 9 ...
也就是说,next矩阵的后半部分一定是一个递增的数列。通过这个next矩阵我们就可以
计算出那个substring的长度,然后再来计算整个数组是不是这个substring的倍数,比
如abcdabcdabc虽然是重复多次,但是最后那个重复是abc,没有完整,少了个d。对于
KMP的理解,这篇博文写得不错:http://blog.csdn.net/v_july_v/article/details/7041827
我也来贴两个解法,第一个解法是暴力解法,从左到右扫描,如果找到了那个重复的
substring,就用这个substring来继续match整个string。如果不成功,那么就继续找
那个substring,不回溯,只是比较次数多,时间复杂度不是O(n),而是O(n^2).
// R... 阅读全帖 |
|
b*******g 发帖数: 57 | 6 我觉得原题的意思是考虑一对单词不要有common letter,不考虑单词本身是否有重复
的letter,所以feed和pull是valid pair.
int maximalProductPairedWordLens(string strs[], int n) {
if (n < 2) return 0;
int maxProduct = 0;
vector > table(n,vector(26,false));
for (int i = 0; i < n; ++i) {
for (int j = 0; j < (int)strs[i].size(); ++j) {
table[i][strs[i][j]-'a'] = true;
}
}
for (int i = 0; i < n-1; ++i) {
for (int j = i+1; j < n; ++j) {
bool hasCommonLette... 阅读全帖 |
|
a********e 发帖数: 53 | 7 class Solution {
public:
Write a function to find the longest common prefix string amongst an array
of strings.
The Time complexity is O(logM * N), while M is the size of strs, N is the
shortest length of the str in the strs
而我觉得这个时间复杂度应该是O(MN). 因为isEqual()的复杂度应该是O(M), as T(M
) = 2T(M/2) + O(1). 谢谢。
============================
bool isEqual(vector &strs, int index, int start, int end) {
if(end < start) return true;
if(end == start) {
if(strs[start].size() > index) return ... 阅读全帖 |
|
|
|
t*******i 发帖数: 4960 | 10 bool dp[size][size]; // Accepted
vector> dp(size, vector(size, false)); // 超时
就上面一行不同,为啥vector 就超时呢?
在visual studio里不能这么定义数组,必须分配空间,所以想用 vector |
|
M*****M 发帖数: 20 | 11 来自主题: JobHunting版 - 一道面试题 类似找最大BST subtree, bottom up.
bool findsubtree(TreeNode *node, unordered_set &set, vector
&vec) {
if(not node) {
return true;
}
unordered_set leftset;
unordered_set rightset;
bool left = findsubtree(node->left, leftset, vec);
bool right = findsubtree(node->right, rightset, vec);
if(left&&right) {
//leftset and rightset overlap
for(auto ele:leftset) {
if(rightset.find(ele)!=rightset.end()) {
... 阅读全帖 |
|
f**********t 发帖数: 1001 | 12 Well, my code is complex and sigfault. Let me go back if I have time.
This is too hard for a 45 minutes interview.
void skipSpace(const char **s) {
while (isspace(**s)) {
++(*s);
}
}
int getNum(const char **s) {
bool neg = false;
if (**s == '-') {
neg = true;
++(*s);
}
int cur = 0;
while (isdigit(**s)) {
cur = cur * 10 + (**s - '0');
++(*s);
}
--(*s);
return neg ? -cur : cur;
}
int opNum(int x, int y, char op) {
switch (op) {
case '+':
return x + y... 阅读全帖 |
|
f*******5 发帖数: 52 | 13
有个思路是时间空间都是O(v^2) v是点的个数,比如这个图:
0 - 1 2
| |
3 - 4 - 5
v就是5。思路是DP,先预处理,建一个数组p[v][v],p[i][j]为true 表示从i 到 j 这
条线上没有间断,并且i和j在一行或一列,在一行的话p[i][j]为true if i 到 j左边的
点为true并且j左边的点到j有边,在一列的话同理。预处理这一步是O(v^2)。
然后遍历每个点,在每个点的时候测试每个长度是否组成正方形,这一步也是O(v^2)。
下面是代码
void preprocess(vector >& arr, vector >& temp, int
row, int col){
int v = row*col;
for(int len = 1; len
for(int from = 0; from
if(from/col-len >=0){
... 阅读全帖 |
|
f*********0 发帖数: 17 | 14 第一题字母可以重复使用?
int n;
int m;
int dx[4] = {1, -1, 0, 0};
int dy[4] = {0, 0, 1, -1};
bool isValidIndex(int x, int y) {
return x=0 && y=0;
}
bool findWordRecur(vector > &matrix, string &word, int i, int x
, int y) {
if (i == word.size()) {
return true;
}
if (matrix[x][y] != word[i]) return false;
for (int t = 0; t < 4; ++t) {
if (isValidIndex(x+dx[t], y+dy[t]) && findWordRecur(matrix, word, i+
1, x+dx[t], y+dy[t])) return true;
}
... 阅读全帖 |
|
a***e 发帖数: 413 | 15 这样是不是 O(N^N)的复杂度?
class Solution {
public:
int maximalRectangle(vector > &matrix) {
int row=matrix.size();
if (row==0) return 0;
int col=matrix[0].size();
if (col==0) return 0;
//find all disjoint rectangles
vector> flag(row, vector(col,false));
int maxArea=INT_MIN;
for (int r=0; r
for (int c=0; c
{
int area=0;
if (matrix[... 阅读全帖 |
|
M****w 发帖数: 11 | 16 来自主题: JobHunting版 - 刷了半天题 class PositiveIterator: public IntegerIterator
{
private:
bool Isnextpos;
int nextPos;
bool getNextPos()
{
while(1)
{
if(!getNext()) return false;
int val = getNext();
if(val>0)
{
isNextPos = true;
nextpos = val;
return true;
}
}
return false;
}
Public:
PositiveIterator
{
IsNextpos = getNextPos();
}
bool hasnextpos()
{
return IsNextPos;
}
int nextpos()
{
val = nextpos;
IsNextpos = getNextPos();
return v... 阅读全帖 |
|
t**r 发帖数: 3428 | 17 贴个答案
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
|
|
b******i 发帖数: 914 | 18 贴个code,不过只test了几种case
/*
给一个list of string 和一个string s, 返回s是不是在list当中, s里可以包含一
个*代表一个任意字符。
*/
#include
#include
#include
using namespace std;
struct TrieNode {
TrieNode():is_word(false),children(26,nullptr) {}
bool is_word;
vector children;
};
class Solution {
public:
bool string_in_list(vector strings, string s) {
if(s.length() == 0 || strings.size() == 0)
return false;
// construct trie
... 阅读全帖 |
|
a******n 发帖数: 103 | 19 bool isPalindrome(string s) {
return help(s,0,s.size()-1);
}
bool help(string &s, int left, int right){
if (left>=right)
return true;
while (left
left++;
}
while (right>=0 && !isValid(s,right))
right--;
return (s[left]==s[right] || abs(s[left]-s[right])=='a'-'A') && help
(s, left+1,right-1);
}
bool isValid(string & s, int i)
{
if ((s[i]>='0' && s[i]<='9')... 阅读全帖 |
|
t****o 发帖数: 94 | 20 这个呢?随便写的,没test过。
bool CanAlwaysWin(vector& num, vector& used, int target)
{
if (target <= 0) return false;
for (int i = 0; i < num.size(); i++)
{
if (used[i]) continue;
if (num[i] >= target) return true;
used[i] = true;
bool win_anyway = true;
for (int j = 0; j < num.size(); j++)
{
if (used[j]) continue;
used[j] = true;
if (!CanAlwaysWin(num, used, target - num[i] - num[j]))
... 阅读全帖 |
|
b******i 发帖数: 914 | 21 拿数字那题写了个巨复杂的code,肯定不是最简单的,也不一定对,欢迎提意见
class Solution {
public:
bool canIWin(int n, int target) {
// assume we choose from 1 to n, target is a positive integer
if(n >= target)
return true;
unordered_set used;
return first_win_helper(n, used, target);
}
bool first_win_helper(int n, unordered_set &used, int target) {
// return true if the first player will be guaranteed to win
if(used.size() == n)
... 阅读全帖 |
|
f*******g 发帖数: 3 | 22 一次电面,一次onsite,一次followup interview
电面:
Leetcode 原题, Decode Ways
onsite:
共五轮
第一轮,Behavior question,末尾有coding
coding题:有一个包含N个整数的数组,数组里的成员范围都在[0-N]之间,相互
disctinct且已经升序排列,请找出唯一的那个在[0-N]之间但不在这个数组中的整数。
eg. N = 3, [0,1,3], 输出 2
给了O(logN)的解法,写的时候出了点错误,面试官虽然是烙印,但人很好,给了提示
写对了。
第二轮,两道coding题
第一题:一个包含N个整数的数组,已知里面有超过N/2是负数,要求写一个函数处理这
个数组,让数组的前半部分填满负数(无需保留相对顺序),后半部分随意。最后返回这
个数组中负数的总数。
给了一个O(N)的算法,暂时没想出更快的。写完代码面试官看看说行,下一题。
第二题:基本上就是leetcode原题,Add and Search Word - Data structure design
很快写完了
第三轮,system design
... 阅读全帖 |
|
o********r 发帖数: 79 | 23 不要吵了。
我按beanbun的思路写了一遍,指教一下
typedef pair COORD;
void extend(COORD cur,
vector >& visited,
vector > matrix,
queue& current,
queue& next )
{
vector shift;
shift.push_back(make_pair(0,-1));
shift.push_back(make_pair(0,1));
shift.push_back(make_pair(1,0));
const int m = matrix.size();
const int n = matrix[0].size();
for(const auto s:shift)
... 阅读全帖 |
|
l*******t 发帖数: 79 | 24 题目就是find all primes less or equal than n,要求体现OOD和写unit test。求拍
砖,多谢各位!
ps:不确定如果面试中让写C++ unit test,不用gtest, boost.test这些库,写成这样
可以吗?。。。因为之前自己写代码没有养成写unit test的习惯,感觉不太规范。。
#include
#include
#include
#include
#include
using namespace std;
class PrimeFinder {
friend class PrimeFinderTest;
public:
PrimeFinder(int n = 2) {
is_prime_.push_back(false);
is_prime_.push_back(false);
is_prime_.push_back(true);
primes_.... 阅读全帖 |
|
y*******5 发帖数: 887 | 25 用composition pattern:
1:---
package NestedIterator;
public interface NestedNodeList extends Iterable {
}
2:---
package NestedIterator;
import java.util.Iterator;
public class Node implements NestedNodeList {
private E val;
public Node(E val) {
this.val = val;
}
@Override
public Iterator iterator() {
return new NodeIterator();
}
private class NodeIterator implements Iterator {
private boolean iterated = false;
@Override... 阅读全帖 |
|
a******f 发帖数: 9 | 26 #include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
class NestedInteger {
public:
NestedInteger(int i) : integer(i), isInt(true) {}
NestedInteger(vector l) : nestedList(l), isInt(false) {}
// Return true if this NestedInteger holds a single integer, rather than
a nested list.
bool isInteger() {
return isInt;
}
// R... 阅读全帖 |
|
k*****u 发帖数: 136 | 27 写416的解法,
bool canPartition(vector& nums) {
int sum = 0;
for(auto num:nums){
sum+= num;
}
if(sum == 0 || sum%2 ==1) return false;
int target = sum/2;
unordered_map pre;
pre[0] = true;
for(auto num:nums){
unordered_map now;
for(auto it: pre){
now[it.first+num] = true;
now[it.first] = true;
if(it.fi... 阅读全帖 |
|
g****g 发帖数: 1828 | 28 SGI Logo
vector
Category: containers Component type: type
Description
A vector is a Sequence that supports random access to elements, constant
time insertion and removal of elements at the end, and linear time insertion
and removal of elements at the beginning or in the middle. The number of
elements in a vector may vary dynamically; memory management is automatic.
Vector is the simplest of the STL container classes, and in many cases the
most efficient.
Example
vector V;
... 阅读全帖 |
|
m**x 发帖数: 8454 | 29 lz的code问题就是没有main()入口,所以是无法单独运行的。我补了main(),可以运行:
#include
#include
bool judge_prime(int a);
int main()
{
int innum;
printf("Please enter your number:");
scanf("%d", &innum);
if (judge_prime(innum)) printf("\n%d is a prime number.\n", innum);
else printf("\n%d is not a prime number.\n", innum);
return 1;
}
另外,c语言好像没有bool类型,因为我gcc编译无法通过(用int代替之即可通过)。
但c++有,所以用bool的话g++编译可以通过。 |
|
t******n 发帖数: 2939 | 30 ☆─────────────────────────────────────☆
l63 (l63) 于 (Thu May 23 00:34:22 2013, 美东) 提到:
假设素数只有有限个, 记为 p_1,p_2,...,p_k
考察 N = p_1*p_2*...*p_k + 1
可知: 对于任意i = 1,2,3,...,k, p_i 不能整除 N
由素数的定义:
a是素数 <=> a是大于1的自然数, 且a不被任何小于a的素数整除
可知: N是素数
这与素数只有p_1,p_2,...,p_k矛盾.
故假设不成立.
所以素数有无穷多个.
☆─────────────────────────────────────☆
l63 (l63) 于 (Thu May 23 00:37:03 2013, 美东) 提到:
在承认素数的这个等价定义 (即 a是素数 <=> a是大于1的自然数, 且a不被任何小于a
的素数整除) 的前提下, 居然有人会认为这个证明是错的, 或者是不完备的.
我实在不能理解.
求问一下大家, 是不是有的人的脑子天生有缺陷, 根本怎么教都不会明白... 阅读全帖 |
|
d**********o 发帖数: 1321 | 31 第一个项目report
这时偶刚到CSAC工作不久,与小A同学还不熟,我用的还是latex。随着贴的作业越来越
多,应该是用有共同爱好的小伙伴更亲密些。这次贴latex,下次才再org-mode。
\documentclass[b5paper,11pt, abstraction, titlepage]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{CJKutf8}
\usepackage{multirow}
\usepackage{multicol}
\usepackage{listings}
\usepackage{geometry}
\geometry{b5paper}
\usepackage{graphicx,floatrow}
\usepackage{graphicx,subfigure}
\newsavebox{\abstractbox}
\renewenvironment{abstract}
{\begin{lrbox}{0}\begin{minipage}{\t... 阅读全帖 |
|
d**********o 发帖数: 1321 | 32 第一个项目report
这时偶刚到CSAC工作不久,与小A同学还不熟,我用的还是latex。随着贴的作业越来越
多,应该是用有共同爱好的小伙伴更亲密些。这次贴latex,下次才再org-mode。
\documentclass[b5paper,11pt, abstraction, titlepage]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{CJKutf8}
\usepackage{multirow}
\usepackage{multicol}
\usepackage{listings}
\usepackage{geometry}
\geometry{b5paper}
\usepackage{graphicx,floatrow}
\usepackage{graphicx,subfigure}
\newsavebox{\abstractbox}
\renewenvironment{abstract}
{\begin{lrbox}{0}\begin{minipage}{\t... 阅读全帖 |
|
m***c 发帖数: 257 | 33 求一个C和C++精通的同学,有个小程序要写,对你们可能很简单,主要是急用,12个小
时内写完,估计可能要写300行左右的代码,100个包子酬谢。
时间改为一周。从今天(3/6/2013)开始算吧。
对Hindley-Milner type checking熟悉的同学发私信吧。感兴趣的话我发给你详细的说
明。
Basically, you will implement a type-checking algorithm based on the
language described。For example,
Input
int foo
int bar
double x
double y
string z
bool success
int[7] a
int[7] b
int[15] c
double[15] d
string[7] note
x = y
foo = b[2] + bar
foo = y * bar
z = z - foo
y = d[4] * x / foo
success = foo + a[1] <= c[7]
note[2] = x - d[3] * randy
no... 阅读全帖 |
|
r*********r 发帖数: 3195 | 34 搞定了, bool (int) 是 function 类型, 而不是 function pointer 类型.
下面的小程序中 T *t_ 如果换成了 T t_ 就不能编译.
#include
template
class foo {
T *t_;
public:
foo(T *t) : t_(t) {}
void call(int n) { std::cout << (*t_)(n) << std::endl; }
};
bool bar(int x) { return x == 0; }
int main()
{
foo f(&bar);
f.call(0);
return 0;
} |
|
c**a 发帖数: 316 | 35 第一种实现:
template
bool isint()
{
return typeof(T) == typeof(int);
}
第二种 实现
template
bool isint()
{
return false;
}
template<>
bool isint()
{
return true;
}
我觉得两种都对哇。
可是答案只有一种是对的。 |
|
L*******s 发帖数: 63 | 36 编译器好像是 g++ 4.3.4
struct eqstr
{
inline bool operator()(const char* s1, const char* s2) const
{
return 0 == strcmp(s1, s2);
}
};
typedef __gnu_cxx::hash_map
>, eqstr> MyTable;
现在有
MyTable t;
中途进行一系列添加操作
每隔一段时间进行以下输出
std::cout << t.size() << std::endl;
std::for_each(t.begin(), t.end(), display1);
display1如下:
void display1(std::pair pr)
{
std::cout << (pr.second ? "T " : "F ") << pr.first << std::endl;
}
我现 |
|
g*******y 发帖数: 1930 | 37 you can store nodes of strings using hash table. In my implementation of the Graph, it's something like:
struct Word_Graph{
hash_map index_map;
vector nodes;
int n;
vector> adj_list;
bool *visited;
void insert(const string &s);
bool DFS(string org, string target);
bool DFS_core(int s, int t);
};
then, when you insert a string(word) into a graph, you only need to do 26*word.length() queries in the hash table to see if the " |
|
h*******s 发帖数: 8454 | 38 en 比较的这些operator都是global的
bool operator== ( const string& lhs, const string& rhs );
bool operator== ( const char* lhs, const string& rhs );
bool operator== ( const string& lhs, const char* rhs ); |
|
M*******r 发帖数: 165 | 39 Sorry 这里是include的头文件,有一些全局定义在这里面,应该是比main早一步吧
#ifndef BarGame_H
#define BarGame_H
#pragma once
//#include
//#include
//#include
#include
#include
#include
#define MM 8 // size of memory
#define SS 6 // number of strategies per company
#define NN 101 // number of companies
#define PMM 4096 // pow(... 阅读全帖 |
|
c*******9 发帖数: 6411 | 40 get compile error from following code, any ideas?
thanks...
.....
set seen;
.....
pair::iterator, bool> res = seen.insert(str);
c:\apps\mvs8\vc\include\functional(143) : error C2784: 'bool
std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits>
&)' : could not deduce template argument for 'const std::_Tree<_Traits>
&' from 'const std::string'
1> c:\apps\mvs8\vc\include\xtree(1372) : see declaration of
'std::operator <'
1> c:\apps\mvs8\vc\include\fu... 阅读全帖 |
|
y**b 发帖数: 10166 | 41 ///////////////////////////////////////////////////////////
A:
class Widget {
public:
...
size_t weight() const;
size_t maxSpeed() const;
...
};
bool operator<(const Widget& lhs, const Widget& rhs)
{
return lhs.maxSpeed() < rhs.maxSpeed();
}
multiset widgets;
///////////////////////////////////////////////////////////
B:
class Widget {
public:
...
size_t weight() const;
size_t maxSpeed() const;
...
};
struct MaxSpeedCompare:
public binary_function {
bool operator()(... 阅读全帖 |
|
s*********d 发帖数: 2406 | 42 请教
int s=1; //1
int *p;
*p=s ;
char *ps=(char*) p ; //2
printf("ps is %d ,%c", *ps, *ps); //3
bool ps1=(bool) *ps ; //4
1)
//2的值好像还是1,但是这个1好像还是int的?
因为//3 好像第一是1,第二个一个face形状。
2)如果 //1
改成 unsigned int s=1;
是不是没有改变
3)//4 返回 true
关键对于bool 来说是不是只要指向非空内容就应该返回true? |
|
y****e 发帖数: 23939 | 43 I paste the full code to if anybody can help me out.
the function refalifn and refalifnfast are good to compile on vc++.
But the function refalidf and refalifdf will have this LNK2019 error on vc++
. Same code compiles OK on g++. It must be some kind of restraint with
visual c++.
static double refalifn(const gsl_vector * v, void *params)
{
Dict *dict = (Dict *) params;
double x = gsl_vector_get(v, 0);
double y = gsl_vector_get(v, 1);
double a = gsl_vector_get(v, 2);
EMData *t... 阅读全帖 |
|
G***l 发帖数: 355 | 44 goodbug的逻辑之java版:
boolean 算毛(Object xx)
{
boolean 科比得过81分 = true
return 科比得过81分;
}
c#版:
bool 算毛(object xx)
{
var 科比得过81分 = true
return 科比得过81分;
}
c++版:
bool 算毛(void* xx)
{
auto 科比得过81分 = true
return 科比得过81分;
}
haskell版:
科比得过81分 = True
算毛 :: a -> Bool
算毛 x = 科比得过81分
python版:
def 算毛(xx):
科比得过81分 = True
科比得过81分
其他语言近几年没用过,欢迎补充 |
|
G*****9 发帖数: 3225 | 45 I am using AIX. I cannot generate .so file
Code:
#include
using namespace std;
#ifdef __cplusplus
extern "C" { // only need to export C interface if
// used by C++ source code
#endif
bool Myfunction( );
#ifdef __cplusplus
}
#endif
bool Myfunction( )
{
std::uniform_real_distribution U(0.0, 1.0);
std::mt19937_64 rnd;
rnd.seed(1);
return true;
}
command: g++ -std=c++0x -maix64 -c -Wall -ansi -g -fPIC test.cc
Error:
test.cc: In function 'bool Myfunctio... 阅读全帖 |
|
s*w 发帖数: 729 | 46 又琢磨了两天,看了不少相关东西,终于搞定了,觉得自己对这个多线程的理解加强了
很多。思考比单纯的看人说原理更刻骨铭心。
这个问题我设计的用一个 producer 多个 consumer 的架构,上个版本的是两头用
condition_variable, 一个通知 producer 有空间了开始干活生产,另一个通知
consumer 有库存了开始消费。参见上篇里面的 wait 和 notify_all,notify_one 语
句。 这个思路对于单 producer 单 consumer 没问题,可是不适用于 多 consumer.
因为所有的 consumer 可能同时睡觉(没空存),同时醒来(有库存),结果只有一个
能抢占mutex(拿到库存),其他的只好继续睡觉(while 循环 wait). 如果无限制的
生产下去,每个睡觉的都有机会醒来干活。可是在有限生产的情况下,producer 干完
活了后,总有睡觉的 consumer 无人唤醒导致死锁。解决的办法就是用 non-block
的 try_lock, lock 不上就返回 false,这样有机会检查是否需要(还在生产或是有
... 阅读全帖 |
|
d**********u 发帖数: 3371 | 47 这里面 在typedef定义了priority_queue的新类型之后 可以用
mypq_type fifth(mycomparison(true)); // greater-than comparison
来取代指点定义中的最后一个template 参数
但是假如要取代其中一个或者两个参数呢
试验了一下并不成功 比如
mypq_type six(deque, mycomparision(true));
谢谢
class mycomparison
{
bool reverse;
public:
mycomparison(const bool& revparam = false)
{
reverse = revparam;
}
bool operator() (const int& lhs, const int&rhs) const
{
if (reverse) return (lhs>rhs);
... 阅读全帖 |
|
o***g 发帖数: 2784 | 48 来自主题: Programming版 - swift let dic = responseObject as Dictionary
let available : Bool = dic["available"] as Bool!
beta 2程序没做任何改动的情况下突然就编译出错了,没有提示行,就是最后有个说编
译有错。然后更新到beta 4。上面两行在beta 2的时候没有问题,现在beta 4里,第二
行的错误提示是(String, AnyObject!) is not convertable to Bool |
|
c***s 发帖数: 15 | 49 //样本代码如下,把具体decoder方法在不同type上实现就行
#include
enum decoder_type
{
type_A = 0,
type_B = 1,
type_C = 2,
no_decoder_available = 3
};
template
class decoder_algorithm
{
};
template<>
struct decoder_algorithm
{
static bool is_compatible () { return false; }
static void decode() { std::cout << "decoder A" << std::endl; }
};
template<>
struct decoder_algorithm
{
static bool is_compatible () { return false; }
static void decode() { std::cout << "decoder B" ... 阅读全帖 |
|
c****d 发帖数: 13 | 50 Verified by Mathematica, it is 3/4
Integrate[
Boole[x > 0] Boole[
x + y > 0] Exp[-x x/2] Exp[-y y/
2], {x, -\[Infinity], \[Infinity]}, {y, -\[Infinity], \
\[Infinity]}]/
Integrate[
Boole[x + y >
0] Exp[-x x/2] Exp[-y y/
2], {x, -\[Infinity], \[Infinity]}, {y, -\[Infinity], \
\[Infinity]}]
The geometry interpretation is better. |
|