由买买提看人间百态

topics

全部话题 - 话题: endles
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)
b*****l
发帖数: 9499
1
来自主题: Linux版 - OpenMP 求救。。。 (转载)
是啊,还是老样子。能麻烦你在你的机子上跑一下不?
$ g++ -fopenmp -c TestOMP.cpp
$ g++ -o TestOMP TestOMP.o -I. -g -O -fopenmp -lm
$ ./TestOMP
omp_get_dynamic: 1
omp_get_max_threads: 48
Fork!
Hello World from thread = 0 of 1
Master thread: number of threads = 1
Joint!
$ less TestOMP.cpp
#include
#include
using namespace std;
main () {
int nthreads;
omp_set_dynamic(1);
cout << "omp_get_dynamic: " << omp_get_dynamic() << endl;
cout << "omp_get_max_threads: " << omp_get_max_threads() << endl;
... 阅读全帖
g*****n
发帖数: 56
2
来自主题: Programming版 - A try-catch problem in C++
#include
using namespace std;
class A {
public:
A() {
cout << "A::A()" << endl;
}
~A() {
cout << "A::~A()" << endl; throw "A::exception";
}
};
class B {
public:
B() {
cout << "B::B()" << endl; throw "B::exception";
}
~B() {
cout << "B::~B()";
}
};
int main(int, char**) {
try {
cout << "Entering try...catch block" << endl;
A objectA;
B objectB;
cout << "Exiting try...catch block" << endl;
} catch (const char* ex) {
cout << ex << endl;
}
return 0;
}
output:
A::A();
B::B();
B::~B();
Abor
g*********s
发帖数: 1782
3
来自主题: Programming版 - protected/private inheritance
class D_pro2: public D_pro {
public:
virtual void g() { cout << "D_pro2::g()\n"; }
void h() { cout << B_protected << endl; }
//void j() { cout << B_private << endl; }
void k() { cout << B_public << endl; }
};
class D_pri2: public D_pri {
virtual void g() { cout << "D_pri2::g()\n"; }
void h() { cout << B_protected << endl; }
//void j() { cout << B_private << endl; }
void k() { cout << B_public << endl; }
};
access_control.cpp: In member function ‘void D_pri2::h()’:... 阅读全帖
c**y
发帖数: 172
4
来自主题: Programming版 - conversion between const to nonconst
Anyone can explain why the second output is 0, rather than 1.

========================================
#include
#include
#include
using namespace std;
int main() {

const int x = 0;

int const *py = &x;

int *px = const_cast(&x);

cout << *px << endl; // output 0

*px = 1;

cout << x << endl; // output 0, I don't understand
cout << *px << endl; // output 1
cout << *py << endl; ... 阅读全帖
m****s
发帖数: 1481
5
还是有点问题,大侠帮忙看下下面的代码,为什么在main里释放内存出错。
用pass by reference:
void fun1(int& *a, double& *b, char& *c){

a=new int[20];
b=new double[20];
c=new char[10];
for (int i=0;i<20;i++){
a[i]=i;
b[i]=sqrt((double)a[i]);
}
c="0123456789";
}
int _tmain(int argc, _TCHAR* argv[])
{
int *a;
double *b;
char *c;
fun1(a,b,c);
cout<<"a & b are:"< for(int i=0;i<20;i++)
cout< cout<<"c is: "< delete[] ... 阅读全帖
r*******y
发帖数: 1081
6
来自主题: Programming版 - post increment
I use g++ compiler. Something strange here.
case 1:
int a[3]={1, 10, 100};
int *p = a;
cout << *p++ << endl << *p < The out put is 1 1
I can not understand this. It is supposed to be 1 10, right?
case 2:
if I write it as
cout << *p++ < cout << *p < the output is 1 10 as it is supposed to be.
case 3:
Also if I have this code
int i = 1;
cout << i++ < The output is also as supposed to be, that is 1 2;
So here case 2 and case 3 are well understood. What is wrong w... 阅读全帖
d**d
发帖数: 389
7
来自主题: Programming版 - GCC检查不出reference reseated?
$ g++ --version
g++ (GCC) 4.4.4 20100630 (Red Hat 4.4.4-10)
code 如下:
#include
using namespace std;
class Animal
{
protected:
string m_strName;
Animal(string strName):m_strName(strName)
{
};
public:
string GetName(){return m_strName;};
virtual const char* Speak(){return "???";};
};
class Cat:public Animal
{
public:
Cat(string strName): Animal(strName)
{
}
virtual const char *Speak(){return "Meow";};
};
clas... 阅读全帖
g***l
发帖数: 2753
8
来自主题: Programming版 - 请教一个C++中function pointer的问题。
老大的这个方法是可行的。可是又出现新的问题了。
我定义了如下接口:
template
dec_base* new_object()
{
return new T;
}
typedef dec_base* (*ObjectGenerator)();
static std::map generator_map;
template
void register_dec_handle(int tag_id)
{
generator_map.insert(make_pair(tag_id,new_object));
}
如果把以上代码跟 main() 代码放在一个main.cpp里面,编译链接都没有问题。但是如
果把以上代码放在另外一个单独的sample.cpp里面,在另外一个main.cpp中的main()调用
register_dec_handle()的时间,gcc就会报告
g++ main.cpp sample.cpp -o sample.exe
main.cpp: 在函数‘int main(... 阅读全帖
L*******r
发帖数: 310
9
来自主题: Programming版 - C++的一个小疑问,求解惑
代码如下:
class IntVector
{
.......
....
..
void IntVector::copy(const IntVector & orign)
{
vsize=orign.size();
vcapacity=orign.capacity();
data= new int [vcapacity];
for(unsigned i=0;i {
cout << "orign: " << orign.data[i] << endl;
data[i] = orign.data[i];
cout << "data[i]: " << data[i] << endl;
}
}
}
int main()
{
IntVector v1;
v1.print();
v1.push_back(1);
v1.print();
v1.push_back(2);
v1.print();
... 阅读全帖
h**********c
发帖数: 4120
10
来自主题: Programming版 - C++一问
应该可以
说不清,JAVA也可以这么干。
#include
#include
class A {
public:
A(const std::string& _name):Name(_name) {}
const std::string Name;
const std::string getName () {
return Name;
}
};
class B:public A {
public:
B():A("It is B") {}
const std::string getName () {
return Name;
}
};
class C:public B {
public:
const std::string Name;
C():Name("It is C") {}
const std::string getName () {
return Name;
}
};
int main () {
A a("It is A");
B b;
C c;
... 阅读全帖
D***n
发帖数: 6804
11
你需要知道编译器是怎么玩的,两段程序在编译器,前半部份基本相同,实际上是:
char i = 'x';
char cp = &i;
char *p;
p = cp;
*p = y; /* i 的内容已经被改成 'y'了 */
不同的地方, 第一段:
cout << *p < cout << *cp << endl;
count << 'x' << endl; 这里编译器直接把常量'x'放这里。
第二段:
cout << *p < cout << *cp << endl;
count << i << endl; 这里编译器读取的是变量i的内容;
h****r
发帖数: 68
12
来自主题: Quant版 - C++ 问题

Agree. See the revised code and output.
#include
#include
using namespace std;
int main()
{
istringstream sstr;
cout<<"eof state: "<
sstr.str("11 22");
cout< int i , j;
sstr>>i>>j;
cout<<"i="<
sstr.str("55 66");

cout<<"After calling sstr.str()"<
cout<<"eof state: "<
int k, m;
sstr>>k>
c*******a
发帖数: 1879
13
这种弱智儿童也能够进谷歌
看来谷歌是世风日下 将是i现在的IBM和诺基亚的后果
【 以下文字转载自 JobHunting 讨论区 】
发信人: zengqinghan (Zzz), 信区: JobHunting
标 题: Re: 面试结束,晒3个 Java面试题,请大家讨论。
发信站: BBS 未名空间站 (Sat Nov 18 15:24:05 2017, 美东)
第三提我也见到过,不过是C++的,其实很简单,就是a执行完解锁b,b执行完解锁c...
开始就a解锁就行了。Java的不懂。
参考代码:
#include
#include
#include
using namespace std;
class Solution
{
mutex mutexa, mutexb, mutexc;
int N = 0;
void threada()
{
for (int i = 0; i < N; ++i)
{
mutexa.lock();
... 阅读全帖
c*******a
发帖数: 1879
14
【 以下文字转载自 JobHunting 讨论区 】
发信人: justicezyx (just), 信区: JobHunting
标 题: Re: 大家看看一个自称狗家码农写的代码 (转载)
发信站: BBS 未名空间站 (Sun Nov 19 17:50:19 2017, 美东)
几个细节,跟google c++代码要求差别比较大。
这个代码我是看不懂在做什么。
#include
#include
#include
using namespace std;
// using declarations on namespace is banned in google c++ code
class Solution
{ // this is not the style used in google, if you write c++ in google, I
feel very difficult to believe that you can resist the muscle memory and
uses a differ... 阅读全帖
c**********e
发帖数: 2007
15
完全不用return也是可以的。你的可以改成
void reversePrint(Node * head){
if(!head){
cout << "the end ..." << endl; // print some message here if needed...
} else {
reversePrint(head->next);
cout << head->data << endl;
}
}
我的可以改成
void reversePrint2(Node* head) {
if(head==NULL) {
cout << "Empty List. No node to print." << endl;
} else if(head->next==NULL) {
cout << head->data << " reversePrint2" << endl;
} else {
reversePrint2(head->next);
cout << head->data <<... 阅读全帖
f*****i
发帖数: 835
16
来自主题: JobHunting版 - C++ Q83: 这个const_cast什么意思?
Thanks, tested following code
const int a = 2;
std::cout << &a << std::endl;

int* b = &(const_cast(a));
*b = 3;
std::cout << &a << std::endl;
std::cout << b << std::endl;
std::cout << a << std::endl;
std::cout << *b << std::endl;
result is:
004EF808
004EF808
004EF808
2
3
super confused now.

in
and
c**********e
发帖数: 2007
17
来自主题: JobHunting版 - google的一道题求解
这是改过的。过了所有测试。复杂度O(n)。
#include
using namespace std;
inline int min(int a, int b) { return a < b ? a : b; }
int maxArea(int a[], int size) {
int mArea=0, area, left=0, right=size-1;
while(left area=(right-left) * min(a[left],a[right]);
if(area>mArea) mArea=area;
if(a[left]<=a[right]) {
int i=left;
while(i left=i;
} else {
int j=right;
while(j>left && a[j]<=a[right]) j--;
right=j;
}
}
... 阅读全帖
c**********e
发帖数: 2007
18
来自主题: JobHunting版 - google的一道题求解
这是改过的。过了所有测试。复杂度O(n)。
#include
using namespace std;
inline int min(int a, int b) { return a < b ? a : b; }
int maxArea(int a[], int size) {
int mArea=0, area, left=0, right=size-1;
while(left area=(right-left) * min(a[left],a[right]);
if(area>mArea) mArea=area;
if(a[left]<=a[right]) {
int i=left;
while(i left=i;
} else {
int j=right;
while(j>left && a[j]<=a[right]) j--;
right=j;
}
}
... 阅读全帖
w****x
发帖数: 2483
19
来自主题: JobHunting版 - leetcode 这题insert interval怎么做?

牛哥啊~~ 这都看出来了, 确实没考虑到, 修改后的代码:
//None overlap segments (5,10)(15,17)(18,25),
//insert (16,35), print out merged result:(5,10)(15,35)
bool intersect(int b1, int e1, int b2, int e2)
{
return max(b1, b2) <= min(e1, e2);
}
void PrintMergRes(int a[], int b[], int n, int nBeg, int nEnd)
{
assert(a && b && n > 0 && nBeg < nEnd);
int i = 0;
while (i < n)
{
if (!intersect(a[i], b[i], nBeg, nEnd)) //no intersect
{
//falls between intervals or at first
... 阅读全帖
w****x
发帖数: 2483
20
来自主题: JobHunting版 - leetcode 这题insert interval怎么做?

牛哥啊~~ 这都看出来了, 确实没考虑到, 修改后的代码:
//None overlap segments (5,10)(15,17)(18,25),
//insert (16,35), print out merged result:(5,10)(15,35)
bool intersect(int b1, int e1, int b2, int e2)
{
return max(b1, b2) <= min(e1, e2);
}
void PrintMergRes(int a[], int b[], int n, int nBeg, int nEnd)
{
assert(a && b && n > 0 && nBeg < nEnd);
int i = 0;
while (i < n)
{
if (!intersect(a[i], b[i], nBeg, nEnd)) //no intersect
{
//falls between intervals or at first
... 阅读全帖
s*********5
发帖数: 514
21
来自主题: JobHunting版 - find the first missing positive integer.
int FindFirstMissingPositiveInteger(int a[], int size)
{
int index = 0;
while (index < size)
{
while (a[index] != index && a[index] < size
&& a[index] >0)
{
int tmp = a[a[index]];
a[a[index]] = a[index];
a[index] = tmp;
}
++index;
}
index = 1;
while (index < size)
{
if (a[index] != index)
return index;
++index;
}
return index;
};
int main(... 阅读全帖
s*********5
发帖数: 514
22
来自主题: JobHunting版 - find the first missing positive integer.
int FindFirstMissingPositiveInteger(int a[], int size)
{
int index = 0;
while (index < size)
{
while (a[index] != index && a[index] < size
&& a[index] >0)
{
int tmp = a[a[index]];
a[a[index]] = a[index];
a[index] = tmp;
}
++index;
}
index = 1;
while (index < size)
{
if (a[index] != index)
return index;
++index;
}
return index;
};
int main(... 阅读全帖
l*******b
发帖数: 2586
23
来自主题: JobHunting版 - 一道A家店面题求解
大家看看有没有bug, 初步试了两个好像是对的
#include
using namespace std;
bool gt (int a, int b) { return a > b; }
bool lt(int a, int b) { return a < b; }
bool eq(int a, int b) { return a == b; }
bool ge(int a, int b) { return a >= b; }
bool le(int a, int b) { return a <= b; }
int search(int A[], int N, int key, bool (*f) (int, int)) {
int dir = f(A[0], A[N-1]) ? -1 : 1; // direction of the search
int cur = (dir == 1) ? 0 : N - 1;
while(!f(A[cur], key)) {
cur += dir;
if(cur < 0... 阅读全帖
h*******0
发帖数: 270
24
来自主题: JobHunting版 - 2道算法题。 求教大家!
一个小公司的面试题
第一题就是让写一个stack machine。 就是计算一个类似于“13*6+”这样的string。
读到数就把数字push到stack里面。 如果读到operator, 就pop出来2个数字。 然后计
算,再把计算结果push到stack。 重复直到计算出最终结果。
第二题找array的magnitude pole. 就是找一个点,所有左边的数字均小于等于它,所
有右边的数字都大于等于它。要求O(n)。
第一题,我写的code,大数据的case时候很慢。大家看看有什么能提高的?
int calculator(int op1, int op2, const char opt){
if(opt == '+'){
return op1+op2;
}else if(opt == '/'){
if(op2 == 0) return -1;
return op1/op2;
}else if(opt == '*'){
return op1*op2;
}else if(opt == '... 阅读全帖
s*w
发帖数: 729
25
要有人觉得有所帮助,给发个包子
【 以下文字转载自 Programming 讨论区 】
发信人: saw (句子熊), 信区: Programming
标 题: Re: 一道count frequency of all words的面试题 (转载)
发信站: BBS 未名空间站 (Mon Sep 23 00:28:12 2013, 美东)
又琢磨了两天,看了不少相关东西,终于搞定了,觉得自己对这个多线程的理解加强了
很多。思考比单纯的看人说原理更刻骨铭心。
这个问题我设计的用一个 producer 多个 consumer 的架构,上个版本的是两头用
condition_variable, 一个通知 producer 有空间了开始干活生产,另一个通知
consumer 有库存了开始消费。参见上篇里面的 wait 和 notify_all,notify_one 语
句。 这个思路对于单 producer 单 consumer 没问题,可是不适用于 多 consumer.
因为所有的 consumer 可能同时睡觉(没空存),同时醒来(有库存),结果只有一个
能抢占mutex(拿到库存),... 阅读全帖
r*c
发帖数: 167
26
来自主题: JobHunting版 - 问个题,没思路
#include
#include
#include
#include
#include
using namespace std;
class KModulo {
public:
int numSolutions(const string& s, const int m, const int rmd, vector<
string>& res) {
int len = s.size();
int localM = m, mLen = 0;
while(localM){
localM /= 10, ++mLen;
}
if (len < mLen) return 0;
vectorvIndices;
unordered_mapmp; //[index of s, index of vIndices]
... 阅读全帖
b****f
发帖数: 138
27
Passed Test Run, Not sure if having other bugs
class Solution {
public:
bool isMultiple (string s){
int N=s.size();
if(N<3) return false;
int len=1;
int start=0;
for(int i=1;i if(s[start]==s[i]){
start++;
if(start>=len) start=0;
}
else{
len=i+1;
start=0;
}
if(len>N/2) return false;
}
return len!=... 阅读全帖
b**y
发帖数: 22
28
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main(int argc, char* argv[])
{
cout<<"Please input a string"< string InputStr;
cin>>InputStr;
string subStr;
int i = InputStr.length()-1;
while(i>0)
{
subStr=InputStr.substr(i);
for(int j=i-1;j>=0;j--)
{
if(InputStr[j]!=subStr[(j%subStr.length())])
{
i=j;
break;
}
if(j==0)
{
//Done should be a tru... 阅读全帖
b****f
发帖数: 138
29
Passed Test Run, Not sure if having other bugs
class Solution {
public:
bool isMultiple (string s){
int N=s.size();
if(N<3) return false;
int len=1;
int start=0;
for(int i=1;i if(s[start]==s[i]){
start++;
if(start>=len) start=0;
}
else{
len=i+1;
start=0;
}
if(len>N/2) return false;
}
return len!=... 阅读全帖
b**y
发帖数: 22
30
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main(int argc, char* argv[])
{
cout<<"Please input a string"< string InputStr;
cin>>InputStr;
string subStr;
int i = InputStr.length()-1;
while(i>0)
{
subStr=InputStr.substr(i);
for(int j=i-1;j>=0;j--)
{
if(InputStr[j]!=subStr[(j%subStr.length())])
{
i=j;
break;
}
if(j==0)
{
//Done should be a tru... 阅读全帖
l*******t
发帖数: 79
31
题目就是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_.... 阅读全帖
z*********n
发帖数: 1451
32
第三提我也见到过,不过是C++的,其实很简单,就是a执行完解锁b,b执行完解锁c...
开始就a解锁就行了。Java的不懂。
参考代码:
#include
#include
#include
using namespace std;
class Solution
{
mutex mutexa, mutexb, mutexc;
int N = 0;
void threada()
{
for (int i = 0; i < N; ++i)
{
mutexa.lock();
cout<<"A ";
cout< mutexb.unlock();
}
}
void threadb()
{
for (int i = 0; i < N; ++i)
{
... 阅读全帖
d**********o
发帖数: 1321
33
来自主题: WebRadio版 - 潜水员冒泡兼征版友意见
hw3b c-.y file
上面这一楼贴了载止hw3b deadline时我match的结果(也就是老师可以以这些不match
的ERROR为借口不给后来我补上的成绩),但是因为当时我还是没有写完,后来感恩节
期间就接着又写了一些,而且hw5是based on hw3 & hw3b的基础上(当我hw5是based
on更好的hw3的结果时,我应该可以得更多的分吧)。
hw4因为写得比较顺利,就不曾保留任何交上去作业的output,没有什么一目了然的结
果是我可以贴在这里的。原本我是想要把自己最的一次作业hw5贴出来的,但那已经是
一个完整的compiler,而且以后我还需要用自己的course project来找工作,所以一定
就不贴最终结果了。那就贴一个hw3b的c-.y文件吧,它集中的hw1、hw2、hw3、 hw3b的
结果,是我自己hw3b *.y文件的最完整版本。这些作业里面也有很多机关一一人为增加
的难度,比如那六七个IO相关的function,不仅traverse tree、build syntax tree的
时候会成为一个考点(把它们作为一个node连在syntax... 阅读全帖
d**********o
发帖数: 1321
34
来自主题: WebRadio版 - 潜水员冒泡兼征版友意见
hw3b c-.y file
上面这一楼贴了载止hw3b deadline时我match的结果(也就是老师可以以这些不match
的ERROR为借口不给后来我补上的成绩),但是因为当时我还是没有写完,后来感恩节
期间就接着又写了一些,而且hw5是based on hw3 & hw3b的基础上(当我hw5是based
on更好的hw3的结果时,我应该可以得更多的分吧)。
hw4因为写得比较顺利,就不曾保留任何交上去作业的output,没有什么一目了然的结
果是我可以贴在这里的。原本我是想要把自己最的一次作业hw5贴出来的,但那已经是
一个完整的compiler,而且以后我还需要用自己的course project来找工作,所以一定
就不贴最终结果了。那就贴一个hw3b的c-.y文件吧,它集中的hw1、hw2、hw3、 hw3b的
结果,是我自己hw3b *.y文件的最完整版本。这些作业里面也有很多机关一一人为增加
的难度,比如那六七个IO相关的function,不仅traverse tree、build syntax tree的
时候会成为一个考点(把它们作为一个node连在syntax... 阅读全帖
m*******o
发帖数: 264
35
来自主题: Programming版 - C++ 弱问一个
请问这个继承最后输出的怎么是BB,而不是CC呢?main函数里的逻辑过程是什么样的?
#include
using namespace std;
class A{
protected:
virtual void print() { cout << "A" << endl; }
void print2() { cout << "AA" << endl; }
};
class B {
public:
virtual void print() { cout << "B" << endl; }
void print2() { cout << "BB" << endl; }
};
class C : public A, public B{
public:
void print2() { cout << "CC" << endl; }
};
int main()
{
C c;
B* p = &c;
p->print2();
};
n**d
发帖数: 9764
36
来自主题: Programming版 - question for C++ constant
Can anybody explain it?
ip=0x22cce4 &k=0x22cce4
*ip=5
ip=0x22cce4 &k=0x22cce4
*ip=6
k=5
#include
using namespace std;
int main() {
const int k = 5;
long k_add = (long)&k;
int *ip = (int *)k_add;
cout << "ip=" << ip << " &k=" << &k << endl;
cout << "*ip=" << *ip << endl;
*ip = 6;
cout << "ip=" << ip << " &k=" << &k << endl;
cout << "*ip=" << *ip << endl;
cout << "k=" << k << endl;
}
z****e
发帖数: 2024
37
来自主题: Programming版 - 没有经过构造函数???
class refc{
public:
refc():cnt(1){cout<<"refc ctr: "< refc(const refc& x):cnt(x.cnt){++cnt;cout<<"refc cp-ctr: "< refc& operator=(const refc& x){
cnt=x.cnt;
++cnt;
cout<<"refc op= "< return *this;
}
~refc(){--cnt;
cout<<"refc dtr "< }
void nul(){}
private:
int cnt;
};
refc f10(){
refc k;
cout<<"k exist()"< return k;
}
int main(int argc, char* argv[ ]){
refc x=f10();
}

refc ctr: 1
k exist()
refc dtr
g*******g
发帖数: 431
38
来自主题: Programming版 - 请教一道入门小题
初学 看了两天了。。。还是不明白。。哎啊
#include
using namespace std;
int a ( );
void b (int = 5);
float c (int&);
int main()
{
int y, x = 2;
float z;
y=a();
cout << x << " "<< y << endl;
b();
z = c(x);
cout << x << " "<< y << " " << z < b(x);
cout << x << " " << y << endl;
return 0;
}
int a ( )
{
int x = 1;
x += 3;
return x;
}
void b(int y)
{
static int x = 4;
x = x + y;
cout << x << endl;
}
float c(int & x)
{
x *= 2;
cout << x << endl;
return 3.0;
}
h****e
发帖数: 2125
39
来自主题: Programming版 - c++ singleton questions

why can't? try this:
"
#include
class X
{
public:
X* getInstance() { return &_x; }
void setMember( int i ) { _i = i; }
int getMember() const { return _i; }
const int* getMemberAddr() const { return (long long)&_i; }
private:
static X _x;
int _i;
};
X X::_x;
int main()
{
X* p;
std::cout << p->getInstance() << std::endl;
p->getInstance()->setMember( 10 );
std::cout << p->getInstance()->getMember() << std::endl;
std::cout << p->ge... 阅读全帖
h****e
发帖数: 2125
40
来自主题: Programming版 - c++ singleton questions

why can't? try this:
"
#include
class X
{
public:
X* getInstance() { return &_x; }
void setMember( int i ) { _i = i; }
int getMember() const { return _i; }
const int* getMemberAddr() const { return (long long)&_i; }
private:
X() {}
~X() {}
X( const X& );
X& operator=( const X& );
static X _x;
int _i;
};
X X::_x;
int main()
{
X* p;
std::cout << p->getInstance() << std::endl;
p->getInstance()->setMember( 10 );
... 阅读全帖
A**u
发帖数: 2458
41
来自主题: Programming版 - 请教pthread producer-consumer问题
我又测试了下面的例子
#include
#include
#include
#include
#include
using std::cout;
using std::endl;
sem_t sem;
void* fun(void*){
while( true ){
sem_wait(&sem);
cout << "Hello " << endl;
}
return 0;
}
int main(){
pthread_t ID;
int res = sem_init(&sem,1,0);
if (res == -1)
{
cout << "sem failed" << endl;
cout << errno << endl;
return 0;
}
pthread_create(&ID... 阅读全帖
EM
发帖数: 715
42
来自主题: Programming版 - [C++ boost::interprocess] 讨论贴
在parent process里面建立一个{1,2,3}的set,然后在child process里面打印出来,编
译可以通过,但是为什么会有segmentation fault呢?读了大半天boost的东东也没搞
明白,请大侠指导一下
程序如下,编译如右:g++ -std=c++0x src.cc -lrt
#include
#include
#include
#include //std::system
#include
#include
#include
using namespace boost::interprocess;
//Main function. For parent process argc == 1, for child process argc == 2
int main(int argc, char **argv)
{
if(argc == 1... 阅读全帖
s*w
发帖数: 729
43
又琢磨了两天,看了不少相关东西,终于搞定了,觉得自己对这个多线程的理解加强了
很多。思考比单纯的看人说原理更刻骨铭心。
这个问题我设计的用一个 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,这样有机会检查是否需要(还在生产或是有
... 阅读全帖
f****4
发帖数: 1359
44
struct packed_struct packed_data = {0};
packed_data.f1 = 45;
packed_data.f2 = 14;
packed_data.f3 = 0;
char buffer[2];
memcpy( buffer, &packed_data, sizeof(packed_struct));
struct packed_struct *ptr = (struct packed_struct *) buffer;
cout<< sizeof(packed_struct) < cout<< sizeof(buffer) < cout<f1< cout<f2< cout<f3<
s******t
发帖数: 150
45
来自主题: Computation版 - c++, sort() 为啥显示 结果不对
ifstream input("story.txt");
vector words;
cout << words.size() << endl;
if(!input)
cerr << "Could not open story.txt!\n";
else
{
string line;
while(getline(input,line))
{
// get single word from each line
istringstream stream(line);
string word;
while(stream >> word)
words.push_back(word);
}
}
//close file
input.close();
cout << "Before sort(), ... 阅读全帖
t******m
发帖数: 255
46
来自主题: Quant版 - C++ 问题
Because when you used sstr to read "11 22", you reached the end of the
stream. You need to clear the state.
#include
#include
using namespace std;
int main()
{
istringstream sstr;
sstr.str("11 22");
cout< int i , j;
sstr>>i>>j;
cout<<"i="< cout< sstr>>i>>j;
cout<<"i="<
n*****3
发帖数: 1584
47
来自主题: DataSciences版 - 问一道(大)数据 algorithm (转载)
你说的对, 这不是大数据。
因为在modeling training stage, 用 R 跑prototype system,
R itself 不 方便 并行。 下一阶段 会上 spark/hadoop。
继续 抛砖引玉一下。 下面的 CPP file 跑得还行。 用 sourceRCPP call
就可。 看看有什么可以改进的,
再次 谢谢大家 all
#include
using namespace Rcpp;
using namespace std;
// Below is a the balancing C++ function to R. You can
// source this function into an R session using the Rcpp::sourceCpp
// function (or via the Source button on the editor toolbar)
// For more on using Rcpp click the Help button on the editor toolbar
// [... 阅读全帖
w********p
发帖数: 948
48
问题继续, 包子继续
class Base
{
public:
Base(){ cout<<"Constructor: Base"< ~Base(){ cout<<"Destructor : Base"< };
class Derived: public Base
{
public:
Derived(){ cout<<"Constructor: Derived"< ~Derived(){ cout<<"Destructor : Derived"< };
int main()
{
Derived Var1;
Base Var2(Var1);
Derived Var3(Var1);
return 0;
}
output:
Constructor: Base
Constructor: Derived
Destructor : Derived
Destructor : Base
Destructor : Base
Destructor : Derived
Destructor : Base
请解释一下
n*******s
发帖数: 482
49
来自主题: JobHunting版 - C++ constructor problem
code :
class Base{
public:
Base(){cout << "Base()" << endl;}
Base(const Base&){cout << "Base(const Base&)" << endl;}
~Base(){cout << "~Base()" << endl;}
};
Base func(Base b){return b;}
void test1(){
Base a;
func(a);
}
void test2(){
Base a;
Base b = func(a);
}
int main(){
test1();
cout<<"----------"< test2();
return 0;
}
// from the output,
test1() will
1. first call Base's default constructor for "Base a"
2. call Base's copy constructor since parameter is passed by value
3. call Base
E**h
发帖数: 6
50
来自主题: JobHunting版 - Amazon的Fibonacci题
void Print_Fibonacci_Reverse(uint32_t n)
{
static uint32_t n0 = 0;
static uint32_t n1 = 1;
if (0 == n)
{
cout << n0 << endl;
return;
}
if (1 == n)
{
cout << n1 << endl;
cout << n0 << endl;
return;
}
uint32_t result = n1 + n0;
n0 = n1;
n1 = result;
Print_Fibonacci_Reverse(n - 1);
result = n1 - n0;
n1 = n0;
n0 = result;
cout << result << endl;
return;
}
首页 上页 1 2 3 4 5 6 7 8 9 10 下页 末页 (共10页)